Почему такой разный результат в многопоточном консольном приложении?

Новичок в многопоточности. Не могу понять почему разный результат после двух этапов выполнения:
1:
f9f1cc95d0984ea2aa1244fe5e5f1c77.PNG
2:
3cefb878a0184fa591e36455ec770da6.PNG
Вот код:
static void Main(string[] args)
        {
            // создаем новый поток
            Thread myThread = new Thread(new ThreadStart(Show));
            

            myThread.Start(); // запускаем поток
           
           

            for (int i = 1; i < 6; i++)
            {

                Console.WriteLine("1");
                Console.WriteLine("2");
                Console.WriteLine("Our!!!!!!!:" + i);
                Thread.Sleep(1000);
            }
            

            Console.ReadLine();
        }

        public static void Show()
        {
            for (int i = 1; i < 6; i++)
            {
                Console.WriteLine("3");
                Console.WriteLine("4");
                Console.WriteLine("Our!!!!!!!:" + i);
                Thread.Sleep(1000);
            }
        }
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
twobomb
@twobomb
Ну как бы потому-что выполняется два потока, и грубо говоря процессор сам выбирает какой поток ему стоит выполнить первым, а какой вторым. И да он у него есть свой менеджер, который может прервать выполнение одного потока передать управление какому нибудь скайпу потом опять прервать и передать управление второму потоку, потом прервать и дать управление первому потоку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
yarosroman
@yarosroman Куратор тега C#
C# the best
https://metanit.com/sharp/tutorial/11.1.php Читайте основы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы