Kiedy jest właściwe użycie Monitor
klasy lub lock
słowa kluczowego dla bezpieczeństwa wątków w C #?
EDYCJA:
Z dotychczasowych odpowiedzi wynika, że lock
jest to krótka ręka na serię wezwań do Monitor
klasy. Do czego dokładnie służy krótka ręka blokady? Albo bardziej wyraźnie,
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 ?
}
}
Aktualizacja
Dziękuję wszystkim za pomoc: wysłałem kolejne pytanie w związku z niektórymi podanymi przez was informacjami. Ponieważ wydaje się, że jesteś dobrze zorientowany w tej dziedzinie, opublikowałem link: Co jest złego w tym rozwiązaniu do blokowania i zarządzania zablokowanymi wyjątkami?