Начать выполнение главного потока после того, как выполнятся другие - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. У меня вопрос, как сделать так, чтобы главный поток выполнялся, после того как выполнятся другие потоки. То что я написал в цикле это жесть, на мой взгляд). Как лучше сделать?
{
             List<Thread> threads = new List<Thread>();
            foreach (var sA in smallArray)
            {
                Thread thread = new Thread(delegate() { TestThread(sA, midArray, bigarray); });
                threads3.Add(thread);
                thread.Start();
                thread.Join();
                Thread.Sleep(0);
            }
 
            while (true)
            {
                Thread th = threads.FirstOrDefault<Thread>(t => t.ThreadState == System.Threading.ThreadState.Running);
                if (th == null)
                    break;
                Thread.Sleep(0);
            }
            MessageBox.Show("OK");
 }
 private void TestThread(int sA, int[] midArray, int[] bigarray)
        {
            foreach (var mA in midArray)
            {
                foreach (var bA in bigarray)
                {
                    test++;
                }
            }
        }

Решение задачи: «Начать выполнение главного потока после того, как выполнятся другие»

textual
Листинг программы
Thread.Sleep(0);

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


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

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

12   голосов , оценка 4.083 из 5
Похожие ответы