Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字典中的重复键<;字符串,EventHandler>;_C#_.net_Concurrency_Dictionary - Fatal编程技术网

C# 字典中的重复键<;字符串,EventHandler>;

C# 字典中的重复键<;字符串,EventHandler>;,c#,.net,concurrency,dictionary,C#,.net,Concurrency,Dictionary,我有 publicstatic只读字典CacheHandlers=newdictionary(); 我在这本字典里有重复的键: 调试器屏幕截图: 这是怎么发生的 它是.net framework中的一个bug还是并发使用的产物?指出字典可能不是线程安全的 如果您同时从字典中读取,那么只要在添加新的键/值对时锁定字典,就可能是安全的。为什么要使用运行时类而不是直接使用CacheHandlers.Keys? public static readonly Dictionary<string,

我有

publicstatic只读字典CacheHandlers=newdictionary();
我在这本字典里有重复的键:

调试器屏幕截图:

这是怎么发生的

它是.net framework中的一个bug还是并发使用的产物?

指出字典可能不是线程安全的


如果您同时从字典中读取,那么只要在添加新的键/值对时锁定字典,就可能是安全的。

为什么要使用运行时类而不是直接使用
CacheHandlers.Keys
public static readonly Dictionary<string, EventHandler> CacheHandlers = new Dictionary<string, EventHandler>();