C# 从不同线程调用方法AutoResteEvent安全吗?
从不同线程调用方法AutoResteEvent安全吗? 或者我应该避免从不同线程调用对象吗C# 从不同线程调用方法AutoResteEvent安全吗?,c#,multithreading,autoresetevent,C#,Multithreading,Autoresetevent,从不同线程调用方法AutoResteEvent安全吗? 或者我应该避免从不同线程调用对象吗 class Test { EventWaitHandle wh = new AutoResetEvent(false); Thread worker = new(Work); public Test { worker.Start(); } public void StopSignal() { wh.Set();
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
}
}
类测试
{
EventWaitHandle wh=新的自动重置事件(false);
线程工作者=新(工作);
公开考试
{
worker.Start();
}
公共停车信号机()
{
wh.Set();//那很好——这就是它的用途
有关更多信息,请参阅文章。底部附近有一个名为“线程安全”的部分,在MSDN上列出了大多数类,因此如果您不确定将来是否有任何其他类是线程安全的,您可以在那里查看。AutoResetEvent和ManualResetEvent的整个要点就是提供di之间的同步不同的线程
有关详细信息,请参阅。是的,从不同线程调用方法AutoResteEvent是安全的。请看一下。我希望这能让您明白。它是为线程之间工作(通信)而设计的。如果不安全,WaitHandles将毫无用处。您将很难选择正确的答案!