我的程序中有三个线程,当第一个线程完成后,我希望它能发信号通知第二个线程开始执行,而当第二个线程完成后,同样需要发信号通知第三个线程开始执行。请问如何实现这个功能?我知道在C#中可以使用wait handles来实现,但我不知道具体如何操作。以下是我的程序代码:
class Program
{
static void Main(string[] args)
{
Thread t1 = new Thread(Task1);
Thread t2 = new Thread(Task2);
Thread t3 = new Thread(Task3);
t1.Start();
t2.Start();
t3.Start();
Console.Read();
}
public static void Task1()
{
Console.WriteLine("I am assigned task 1:");
for (int i = 0; i < 50; i++)
{
Console.WriteLine("Task1" );
}
}
public static void Task2()
{
Console.WriteLine("I am assigned task 2:");
for (int i = 0; i < 50; i++)
{
Console.WriteLine("Task2");
}
}
public static void Task3()
{
Console.WriteLine("I am assigned task 3:");
for (int i = 0; i < 50; i++)
{
Console.WriteLine("Task3");
}
}
}
t2
作为参数传递给t1.Start
,然后在Task1
结束时使用你得到的参数调用t2.Start()
。为了使其正常工作,请使用ParameterizedThreadStart。 - Shadow The Spring Wizard