.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");
            }
        }
    }
}

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


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

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

12   голосов , оценка 3.833 из 5