.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"); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д