Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中,多线程独立地使用AutoResetEvent WaitOne处理每个线程#_C#_Multithreading_Thread Safety - Fatal编程技术网

C# 在c中,多线程独立地使用AutoResetEvent WaitOne处理每个线程#

C# 在c中,多线程独立地使用AutoResetEvent WaitOne处理每个线程#,c#,multithreading,thread-safety,C#,Multithreading,Thread Safety,您好,我有多线程应用程序(c#iis应用程序)。我启动多线程作为后台线程。在每个线程中,我都有一个使用AutoResteEvent.waitone的逻辑。但是,当一个线程使用waitone命令时,其他线程也进入睡眠模式而不工作。我如何分离waitone逻辑而不影响其他线程 Thread1 AutoResetEvent receiveCompleteEvent=null; using(receiveCompleteEvent=new System.Threading.AutoRe

您好,我有多线程应用程序(c#iis应用程序)。我启动多线程作为后台线程。在每个线程中,我都有一个使用AutoResteEvent.waitone的逻辑。但是,当一个线程使用waitone命令时,其他线程也进入睡眠模式而不工作。我如何分离waitone逻辑而不影响其他线程

Thread1 
    AutoResetEvent receiveCompleteEvent=null;
    using(receiveCompleteEvent=new System.Threading.AutoResetEvent(false))
    {
    DoJob1();...

    receiveCompleteEvent.WaitOne();
    }

Thread2
    AutoResetEvent receiveCompleteEvent=null;
    using(receiveCompleteEvent=new System.Threading.AutoResetEvent(false))
    {
    DoJob2();...

    receiveCompleteEvent.WaitOne();
    }
当Thread1工作或相反时,Thread2不工作。
我希望当thread1进入waitone并进入睡眠状态时,thread2仍在独立地执行其作业。

这是因为每个线程都在覆盖另一个线程的ARE实例。如果将等待事件分开,则会遇到竞争条件,并且没有同步


那么,你想要相互排斥,还是想要比赛条件?您当前的代码以某种方式实现了这两种功能。

Hi,我分离了receivecompleteevent,并创建了一个新的线程调用,但第一个线程阻止了另一个线程调用。using(receivecompleteevent=new System.Threading.AutoResetEvent(false)){//code在此Dojob receivecompleteevent.WaitOne()}请分享示例代码好吗?我希望每个线程都能独立工作。如果一个线程输入wait,另一个线程继续工作,那么不清楚如果希望线程独立工作,为什么要坚持使用ARE。你在寻找某个东西的无锁实现吗?所有线程都有自己的AutoResetEvent receiveCompleteEvent,就像receiveCompleteEvent1、receiveCompleteEvent2一样。。。