伪代码:C#事件:哪个线程
class A
{
Dictionary<string, object> dic = new Dictionary<string, object>();
public Do()
{
some_a.SomeEvent += (s, e) =>
{
dic["some_string"] = new object();
};
dic["some_other_string"] = new object();
}
}
这安全吗?这将是如果两个字典操作都在同一个线程上。他们呢?
编辑在我的情况下,事件被触发在与Do
相同的线程,所以它是安全的。
好吧,它取决于你的“some_a”对象调用SomeEvent处理程序的线程。如果是的话,假设它是安全的,否则,不。 – 2012-08-17 10:38:34
您可以使用类似于 的东西来检测您正在运行哪个线程Console.Write(System.Threading.Thread.CurrentThread.ManagedThreadId); – AlSki 2012-08-17 10:41:00