valker's blog

valker's blog: идеи, размышления, наблюдения

Posts Tagged ‘lock

lock(this) — это плохо? Да!

leave a comment »

Почему конструкция lock(this) {…} — это плохо?

В двух словах дело в том, что клиент объекта вашего класса возможно уже захватил блокировку по нему в другом потоке.

Поэтому для внутренних блокировок лучше использовать специальный объект член-данных, созданный специально для этих целей:

class A {
    private object lockObject = new object();
    public void Method() {
        lock(lockObject) {...}
    }
}

Written by valker

Январь 17, 2011 at 1:46 пп