.NET 4.x Поочередное выполнение потоков - C#
Формулировка задачи:
Есть задача из основного потока вызываются 2 дополнительных для вывода информации на экран 10 раз
(скажем поток 1 печатает 10 раз "t1" поток 2 печатает "t2") при помощи чего или кого возможно сделать так чтобы сначала первый поток печатал пять раз t1 потом второй поток печатал t2 так же 5 раз. Дальше опять первый поток допечатал 5 раз и то же самое сделал второй поток.
пример консоли
t1
t1
t1
t1
t1
t2
t2
t2
t2
t2
t1
t1
t1
t1
t1
t2
t2
t2
t2
t2
Решение задачи: «.NET 4.x Поочередное выполнение потоков»
textual
Листинг программы
- using System;
- using System.Threading;
- namespace ConsoleApplication1
- {
- class Program
- {
- private static AutoResetEvent WaitOne = new AutoResetEvent(false);
- private static AutoResetEvent WaitTwo = new AutoResetEvent(false);
- static void Main(string[] args)
- {
- var th1 = new Thread(PrintOne);
- var th2 = new Thread(PrintTwo);
- th1.Start();
- th2.Start();
- WaitOne.Set();
- WaitTwo.WaitOne();
- th1.Join();
- th2.Join();
- Console.ReadKey();
- }
- private static void PrintOne()
- {
- WaitOne.WaitOne();
- for (var i = 0; i < 10; i++)
- {
- if (i == 7)
- {
- WaitTwo.Set();
- WaitOne.WaitOne();
- }
- Console.WriteLine("Поток 1");
- }
- WaitTwo.Set();
- }
- private static void PrintTwo()
- {
- WaitTwo.WaitOne();
- for (var i = 0; i < 10; i++)
- {
- if (i == 7)
- {
- WaitOne.Set();
- WaitTwo.WaitOne();
- }
- Console.WriteLine("Поток 2");
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д