Когда в C # целесообразно использовать Monitor
класс или lock
ключевое слово для обеспечения безопасности потоков?
РЕДАКТИРОВАТЬ:
Судя по ответам до сих пор, lock
это короткая рука для серии вызовов Monitor
класса. Для чего именно нужен вызов блокировки? Или, точнее,
class LockVsMonitor
{
private readonly object LockObject = new object();
public void DoThreadSafeSomethingWithLock(Action action)
{
lock (LockObject)
{
action.Invoke();
}
}
public void DoThreadSafeSomethingWithMonitor(Action action)
{
// What goes here ?
}
}
Обновить
Спасибо всем за вашу помощь: я опубликовал еще один вопрос в продолжение некоторой информации, которую вы все предоставили. Поскольку вы, кажется, хорошо разбираетесь в этой области, я разместил ссылку: Что плохого в этом решении для блокировки и управления заблокированными исключениями?