.NET 4.x TCP сервер, является ли приведенный код потоконебезопасным - C#

Узнай цену своей работы

Формулировка задачи:

Представим на секунду, что у нас имеется TCP сервер, который хранит экземпляры класса клиента в Словаре <ip, client>. Предполагается, что будут многократно и из разных потоков вызываться такие методы как
if (cons.ContainsKey(_ip)) cons[_ip].killCon();  
if (cons.ContainsKey(_ip)) cons[_ip].incrementPersonalDirSize(_inct);
и т.д. и т.п. Является ли подобный код потоконебезопасным и следует ли заключать подобное в блоки lock?

Решение задачи: «.NET 4.x TCP сервер, является ли приведенный код потоконебезопасным»

textual
Листинг программы
client _client = null;
lock (locker) cons.TryGetValue(_ip, out _client);
 
if (_client != null)
{
   cons[_ip].killCon();  
   cons[_ip].incrementPersonalDirSize(_inct);
}

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы