ConcurrentDictionaryがあり、ifステートメント内でTryGetValueを使用する場合、これによりifステートメントのコンテンツスレッドが安全になりますか?または、ifステートメント内でロックする必要がありますか?
例:
ConcurrentDictionary<Guid, Client> m_Clients;
Client client;
//Does this if make the contents within it thread-safe?
if (m_Clients.TryGetValue(clientGUID, out client))
{
//Users is a list.
client.Users.Add(item);
}
または私はしなければなりませんか:
ConcurrentDictionary<Guid, Client> m_Clients;
Client client;
//Does this if make the contents within it thread-safe?
if (m_Clients.TryGetValue(clientGUID, out client))
{
lock (client)
{
//Users is a list.
client.Users.Add(item);
}
}