Задать вопрос

Как запустить потоки поочередно?

Разбираюсь с потоками, и никак не могу поять. Как запустить поток который будет идти после окончания второго?
Делал и с приоритеностю, и с Join() даже что-то пытлася(но не понял его принцып). Но все равно работает не так как я хочу.

Вообзе задача такая, сделать 3 потока. Где 2й запускает 3й поток в фоне, а 1й потом запускается после завершения 2.

class Program {
        static void Main() {
            Thread primaryThread = Thread.CurrentThread;
            primaryThread.Name = "Thread #1";


            Thread secondaryThread = new Thread(RunSecondThread);
            secondaryThread.Start();

            primaryThread.Priority = ThreadPriority.Lowest;
            secondaryThread.Priority = ThreadPriority.Highest;

            for (int counter = 0; counter < 5; counter++) {
                Console.WriteLine("{0} -> {1}", primaryThread.Name, counter);
                Thread.Sleep(200);
            }
        }

        static void RunSecondThread() {
            Thread secondaryThread = Thread.CurrentThread;
            secondaryThread.Name = "Thread #2";

            Thread thirdThread = new Thread(RunThirdThread);
            thirdThread.IsBackground = true;
            thirdThread.Start();

            for (int counter = 0; counter < 5; counter++) {
                Console.WriteLine("{0} -> {1}", secondaryThread.Name, counter);
                Thread.Sleep(500);
            }
        }

        static void RunThirdThread() {
            Thread thirdThread = Thread.CurrentThread;
            thirdThread.Name = "Thread #3";

            for (int counter = 0; counter < 5; counter++) {
                Console.WriteLine("{0} -> {1}", thirdThread.Name, counter);
                Thread.Sleep(1000);
            }
        }
    }
  • Вопрос задан
  • 294 просмотра
Подписаться 3 2 комментария