Я пытаюсь реализовать 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();
}
}
Но это не работает. Использование кажется очень простым, поэтому я был бы признателен, если бы кто-нибудь смог показать мне, что не так и где проблема с логикой, которую я здесь реализую.
_stopThreads
... - person Jon Skeet   schedule 23.01.2013Display Thread 1
,Display Thread 2
,Display Thread 1
, отображать поток 2 и т. д., не меняя порядок, напримерDisplay Thread 1
,Display Thread 1
илиDisplay Thread 2
,Display Thread 2
. - person Leron_says_get_back_Monica   schedule 23.01.2013