Düşündüğünüzden daha basit.
Microsoft'a göre : lockAnahtar kelime, bir iş parçacığının kritik bölümdeyken bir iş parçacığının kritik bir kod bölümüne girmemesini sağlar. Başka bir iş parçacığı kilitli bir kod girmeye çalışırsa, nesne serbest bırakılıncaya kadar bekler, engeller.
lockAnahtar kelime aramaları Enterbloğun başlangıcında ve Exitblok sonunda. lockanahtar kelime aslında Monitorarka uçtaki sınıfı işler .
Örneğin:
private static readonly Object obj = new Object();
lock (obj)
{
// critical section
}
Yukarıdaki kodda, önce iplik kritik bir bölüme girer ve sonra kilitlenir obj. Başka bir evre girmeye çalıştığında obj, ilk evre tarafından zaten kilitlenmiş olan kilitlenmeyi de dener . İkinci iş parçacığının ilk iş parçacığının serbest bırakılmasını beklemesi gerekir obj. İlk iş parçacığı ayrıldığında, başka bir iş parçacığı kilitlenir objve kritik bölüme girer.