Мышление с темами в asp.net - PullRequest
1 голос
/ 16 июня 2011

У меня есть статический класс, который имеет частный объект словаря. Этот объект инициализируется в статическом конструкторе, а затем изменяется каждый раз, когда событие TimerElapsed вызывается объектом таймера (также расположенным в статическом классе).

Мои страницы используют метод get () для доступа к словарю. Это страницы, доступные для просмотра публике, поэтому многие из них могут происходить одновременно.

Нужно ли беспокоиться о блокировке объекта словаря, чтобы страница не пыталась прочитать его во время обновления?

1 Ответ

2 голосов
/ 16 июня 2011

Может оказаться, что использование ConcurrentDictionary (если вы используете .NET 4) является более надежным решением. В противном случае вы можете столкнуться с проблемами, когда два или более потоков пытаются выполнить запись (или чтение / запись) одновременно.

Если у вас нет .NET 4, вы можете предпочесть заключить словарь в класс, который использует блокировки для предотвращения доступа к общим битам, чтобы у вас не было разбросанных блокировок повсюду.

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