lock кілт сөзі C# программасында System.Threading атаулар кеңістігіндегі Monitor класында анықталған синхронизация құралдарына жылдам қатынау тәсілі болып табылады. Бұл класта объектіні бұғаттау үшін Enter() әдісі, ал бұғаттауды шешу үшін Exit() әдісі шақырылады. Төменде осы әдістердің жалпы формасы келтірілген:
public static void Enter(object obj)
public static void Exit(object obj)
мұндағы obj синхронизацияланатын объектіні білдіреді. Егер объект қолжетімді болмаса, онда Enter() әдісін шақырғаннан кейін шақырушы ағын объект қолжетімді болғанша күтеді. lock операторы ағындарды синхронизациялау құралдарын автоматты ұсынатын болғандықтан, Enter() және Exit() әдістері сирек қолданылады.
Monitor класы және бұғаттау
Monitor.Enter (_locker);
try { if (_val2 != 0)
Console.WriteLine (_val1 / _val2);
_val2 = 0; }
finally { Monitor.Exit (_locker); }
Monitor класы және бұғаттау
Monitor класының келесі әдісі пайдалы болуы мүмкін:
Алайда, бұл жағдайда да шақырушы ағынның өз кезегін күтуіне тура келеді. Тек, егер қажетті объект уақытша қолжетімсіз болса, TryEnter() әдісінің көмегімен ағындарды синхронизациялаудың басқа нұсқаларын пайдалануға болады.