从不同的线程调用方法自动重置事件是否安全

本文关键字:事件 安全 是否 方法 线程 调用 | 更新日期: 2023-09-27 17:56:52

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

从不同的线程调用方法自动重置事件是否安全

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

这很好 - 这就是它的用途!

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

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

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