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 に答える