C# 在c中,多线程独立地使用AutoResetEvent WaitOne处理每个线程#
您好,我有多线程应用程序(c#iis应用程序)。我启动多线程作为后台线程。在每个线程中,我都有一个使用AutoResteEvent.waitone的逻辑。但是,当一个线程使用waitone命令时,其他线程也进入睡眠模式而不工作。我如何分离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
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一样。。。