从不同的线程调用方法AutoResetEvent是否安全?

时间:2013-01-31 10:01:31

标签: c# multithreading autoresetevent

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

AutoResetEvent和ManualResetEvent的重点完全在于提供不同线程之间的同步!

有关详细信息,请参阅This article