У меня вопрос, как работает Monitor.Enter. Я исследовал .net framework исходный код, и он показывает только это:
[System.Security.SecurityCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern void ReliableEnter(Object obj, ref bool lockTaken);
Я полагаю, реализация Monitor.Enter зависит от платформы, поэтому я просмотрел исходный код Mono и отказался: (
Да, критический раздел, назначенный для каждого экземпляра System.Object, может решить, но я не думаю, что на самом деле Monitor.Lock написан так, потому что создание критического раздела для каждого System.Object будет стоить неограниченно (Win32 не позволяет использовать миллиарды объектов критических разделов в процессе!)
Кто-нибудь знает, как работает Monitor.Enter? Ответьте. Заранее благодарим.