从不同的线程调用方法AutoResetEvent是否安全? 或者我应该避免从不同的线程调用对象?
class Test
{
EventWaitHandle wh = new AutoResetEvent(false);
Thread worker = new(Work);
public Test
{
worker.Start();
}
public void StopSignal()
{
wh.Set(); //<-- Main thread Call
}
void Work()
{
wh.WaitOne(); //<-- Child thread call
}
}
答案 0 :(得分:3)
没关系 - 这就是它的用途!
有关详细信息,请参阅this MSDN文章。底部附近有一个名为“线程安全”的部分,列在MSDN上的大多数类中,因此如果您不确定将来是否有其他类是线程安全的,您可以在那里查看。
答案 1 :(得分:3)
是的,从不同的线程调用方法AutoResetEvent是安全的。看看这个link。我希望这能让你清楚。
答案 2 :(得分:0)
AutoResetEvent和ManualResetEvent的重点完全在于提供不同线程之间的同步!
有关详细信息,请参阅This article。