【发布时间】:2018-04-01 09:41:41
【问题描述】:
您好,我有多线程应用程序(c# iis 应用程序)。我将多线程作为后台线程启动。并且在每个线程内部我都有一个使用 autoresetevent.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仍在独立工作。
【问题讨论】:
-
所有线程都有自己的AutoResetEventreceiveCompleteEvent,想像receiveCompleteEvent1,receiveCompleteEvent2...
标签: c# multithreading thread-safety