Как работает System.Threading.Monitor.Enter ()?

У меня вопрос, как работает 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? Ответьте. Заранее благодарим.

8
задан Hyunjik Bae 21 July 2011 в 02:57
поделиться