Можете ли вы заблокировать общий словарь? - PullRequest
6 голосов
/ 04 января 2009

Или вы всегда должны создавать какой-то другой объект блокировки?

Ответы [ 2 ]

14 голосов
/ 04 января 2009

Да, приведите его к IDictionary и заблокируйте .SyncRoot:

Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();

lock (((IDictionary)dic).SyncRoot)
{
    // code
}

Благодаря этому источнику за информацию.

Конечно, потокобезопасный словарь тоже подойдет, как и предлагали другие.

1 голос
/ 04 января 2009

Вы можете заблокировать любой объект, который пожелаете (кроме типов значений). рекомендуется , но для блокировки объекта .SyncRoot.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...