2

从不同的线程调用方法 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
    }
}
4

3 回答 3

4

是的,从不同的线程调用方法 AutoResetEvent 是安全的。看看这个链接。我希望这能让你清楚。

于 2013-01-31T12:53:41.477 回答
3

没关系 - 这就是它的用途!

有关详细信息,请参阅此 MSDN文章。MSDN 上的大多数类在底部附近都有一个名为“线程安全”的部分,因此如果您不确定将来是否有任何其他类是线程安全的,您可以在那里查看。

于 2013-01-31T10:04:01.317 回答
0

AutoResetEvent 和ManualResetEvent 的全部意义在于提供不同线程之间的同步!

有关详细信息,请参阅本文

于 2013-01-31T10:08:25.800 回答