.NET 4.x TCP сервер, является ли приведенный код потоконебезопасным - C#
Формулировка задачи:
Представим на секунду, что у нас имеется TCP сервер, который хранит экземпляры класса клиента в Словаре <ip, client>. Предполагается, что будут многократно и из разных потоков вызываться такие методы как и т.д. и т.п. Является ли подобный код потоконебезопасным и следует ли заключать подобное в блоки lock?
if (cons.ContainsKey(_ip)) cons[_ip].killCon(); if (cons.ContainsKey(_ip)) cons[_ip].incrementPersonalDirSize(_inct);
Решение задачи: «.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);
}