8
Ich versuche, AutoResetEvent
zu implementieren. Für den Zweck verwende ich eine sehr einfache Klasse:Synchronisieren von zwei Threads mit AutoResetEvent
public class MyThreadTest
{
static readonly AutoResetEvent thread1Step = new AutoResetEvent(false);
static readonly AutoResetEvent thread2Step = new AutoResetEvent(false);
void DisplayThread1()
{
while (true)
{
Console.WriteLine("Display Thread 1");
Thread.Sleep(1000);
thread1Step.Set();
thread2Step.WaitOne();
}
}
void DisplayThread2()
{
while (true)
{
Console.WriteLine("Display Thread 2");
Thread.Sleep(1000);
thread2Step.Set();
thread1Step.WaitOne();
}
}
void CreateThreads()
{
// construct two threads for our demonstration;
Thread thread1 = new Thread(new ThreadStart(DisplayThread1));
Thread thread2 = new Thread(new ThreadStart(DisplayThread2));
// start them
thread1.Start();
thread2.Start();
}
public static void Main()
{
MyThreadTest StartMultiThreads = new MyThreadTest();
StartMultiThreads.CreateThreads();
}
}
Aber das funktioniert nicht. Die Verwendung scheint sehr geradlinig zu sein, daher würde ich es begrüßen, wenn mir jemand zeigen könnte, was falsch ist und wo das Problem mit der Logik liegt, die ich hier implementiere.
Wie ist es nicht Arbeiten? Was geschieht? – SLaks
Nun, der Code, den Sie angegeben haben, wird nicht einmal kompiliert - Sie haben nie "_stopThreads" erklärt ... –
@ Jon Skeet Ich ändere einfach den Code, um das Problem zu isolieren, jetzt ist es behoben. – Leron