.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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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