Я приметил практически все примеры я видел, что замки на случаях используются следующиеРазмещение замок на владеющему объекта
public class Foo {
readonly object locker = new Object();
public void DoSomething() {
lock(locker) {
//...
}
}
public void DoSomethingElse() {
lock(locker) {
//...
}
}
}
Это очень полезно, когда несколько потоков могут иметь доступ к тем же экземпляр, и вы хотите, чтобы его методы были атомарными относительно друг друга.
В моих экспериментах это будет работать так же хорошо, если бы я сделал lock(this)
вместо того, чтобы иметь объект-шкафчик. Есть ли что-то, что мне не хватает, или это прекрасно?