Когда целесообразно использовать либо класс Monitor
, либо ключевое слово lock
для безопасности потоков в С#?
EDIT:
По-видимому, из ответов до сих пор, что 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 ?
}
}
Обновление
Спасибо всем за вашу помощь. Я отправил еще один вопрос в качестве ответа на некоторые из предоставленной вами информации. Поскольку вы, похоже, хорошо разбираетесь в этой области, я опубликовал ссылку: Что не так с этим решением для блокировки и управления заблокированными исключениями?