Синхронизация групп потоков - 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(); ...