我有3个线程,两个"工人"和一个"经理"."Workers"线程等待EventWaitHandle"经理"线程发出信号,EventWaitHandle然后他们增加了他们的计数器.这些"工作"线程之间的唯一区别是一个使用EventWaitHandle.WaitAny()而另一个使用EventWaitHandle.WaitOne().
这是代码:
class Program
{
static void Main(string[] args)
{
MultiThreadedJobs multyThreadedJobs = new MultiThreadedJobs();
multyThreadedJobs.Start();
Console.ReadLine();
multyThreadedJobs.Stop();
}
}
class MultiThreadedJobs : IDisposable
{
private EventWaitHandle syncEvent;
private EventWaitHandle[] syncEventsArray;
private Thread managerThread;
private Thread firstWorkerThread;
private Thread secondWorkerThread;
private volatile bool running = false;
public MultiThreadedJobs() // Ctor
{
syncEvent = new EventWaitHandle(false, EventResetMode.AutoReset, "JobsSyncEvent");
syncEventsArray = new EventWaitHandle[1];
syncEventsArray[0] = syncEvent;
managerThread = new Thread(ManagerThreadMethod);
firstWorkerThread = new Thread(FirstWorkerThreadMethod); …Run Code Online (Sandbox Code Playgroud)