使用以下代码,在多线程环境中会发生什么:
static Dictionary<string,string> _events = new Dictionary<string,string>();
public static Dictionary<string,string> Events { get { return _events;} }
public static void ResetDictionary()
{
_events = new Dictionary<string,string>();
}
在多线程环境中,不同线程可以同时访问此方法和属性。
将新对象分配给可在不同线程中访问的静态变量是否线程安全?会出什么问题?
是否有时间事件可以为空?例如,如果 2 个线程同时Events
调用ResetDictionary()
。