valker's blog

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

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

leave a comment »

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

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

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

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

Written by valker

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

Добавить комментарий

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: