Потоки и взаимодействие между ними - 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();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы