Потоки и взаимодействие между ними - C#
Формулировка задачи:
Всем привет!
С потоками вот только начал разбираться, поэтому вопрос нубский.
Каким образом можно реализовать взаимодействие между потоками:
1. Создали поток1.
2 Создали поток 2
3. Подождали пока поток1 что то там сделает,а точнее проиницилизирует все что ему надо.
4. Как только он сделал дело-надо как то дать знать второму потоку,что теперь и он может начать работу (с первым потоком).
Мне больше всего непонятен пункт 4. Как это сделать? через события?
Спасибо.
Решение задачи: «Потоки и взаимодействие между ними»
textual
Листинг программы
private static AutoResetEvent _autoResetEvent;
private static void Go1()
{
//Делаем что-то в первом потоке
Thread.Sleep(5000);
//Уведомляем что закончили
_autoResetEvent.Set();
}
private static void Go2()
{
//Ждем пока первый поток отработает
_autoResetEvent.WaitOne();
//Выполняем действия во втором потоке
MessageBox.Show("Прошло 5 секунд");
}
[STAThread]
private static void Main(string[] args)
{
_autoResetEvent = new AutoResetEvent(false);
Thread threadOne = new Thread(Go1);
Thread threadTwo = new Thread(Go2);
threadOne.Start();
threadTwo.Start();
Console.ReadKey();
}