Вопрос

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top