Синхронизация групп потоков - C#

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

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

Здравствуйте! Помогите, пожалуйста. У меня есть метод MonitoringThread() в котором запускается 9 потоков. Мне необходимо чтобы каждые из последующих трех потоков запускались только по окончании работы предыдущих трех. С помощью какого инструмента это можно реализовать? Спасибо.
namespace name
{
    public partial class Class1 : Form
    {
        public Class1()
        {
            InitializeComponent();
        }
 
        Class2 cl2 = new Class2();
        List<Class3> cl3;
        Class4 cl4 = null;
        Thread th10;
        Thread th11;
        Thread th20;
        Thread th21;
        Thread th30;
        Thread th31;

        public void MonitoringThread()
        {
            for (; cl3 != null && cl3.Count != 0;)
            {
                Class3 Cls3 = cl3[0];
                
                th10 = new Thread(delegate() { Work1(Cls3, cl4); });
                th10.Start();
                th11 = new Thread(delegate() { Work2(Cls3, cl4); });
                th11.Start();
                Work(Cls3, cl4);
                
                th20 = new Thread(delegate() { Job1(Cls3, cl4); });
                th20.Start();
                th21 = new Thread(delegate() { Job2(Cls3, cl4); });
                th21.Start();
                Job(Cls3, cl4);
                
                th30 = new Thread(delegate() { Dothejob1(Cls3, cl4); });
                th30.Start();
                th31 = new Thread(delegate() { Dothejob2(Cls3, cl4); });
                th31.Start();
                Dothejob(Cls3, cl4);
            }            
        }
            
    }
}

Решение задачи: «Синхронизация групп потоков»

textual
Листинг программы
//создаем и запускаем потоки 1 2 3
...
//В главном потоке:
th1.Join();
th2.Join();
th3.Join();
//4 5 6
...
th4.Join();
th5.Join();
th6.Join();
...

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


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

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

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