Коли доречно використовувати Monitor
клас або lock
ключове слово для безпеки потоків у C #?
РЕДАГУВАТИ:
З відповідей на сьогоднішній день видно, що 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 ?
}
}
Оновлення
Дякуємо усім за допомогу: я опублікував ще одне запитання як продовження певної інформації, яку ви всі надали. Оскільки ви, здається, добре розбираєтесь у цій галузі, я опублікував посилання: Що не так із цим рішенням щодо блокування та управління заблокованими винятками?