如何按顺序运行C#线程

时间:2010-08-09 07:26:08

标签: c# multithreading

我有一种情况,我想启动3个线程:tr1,tr2和tr3

我希望tr2在tr1之后启动,tr3在tr2之后启动。

我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:2)

你可能有什么理由?如果你不需要,并行运行为什么你需要3个线程?

任何方式 - 你可以从thread2调用thread1.Join()并从thread3调用thread2.Join(),这样每个线程都会等待前一个线程。

答案 1 :(得分:1)

让每个线程开始下一个。

但是,如果它们都按顺序运行,那么首先要使用多个线程的原因是什么?

答案 2 :(得分:1)

在Fx4中,您可以使用任务和ContinueWith功能。

尽管必须按顺序运行任务(作业)才有意义,但对于线程来说似乎并不那么明智。为什么不使用1个按顺序执行m1(),m2()和m3()的Thread?特别是如果你在Fx <= 3.5

这里的另一个方面是错误处理。任务库将处理或多或少不可见,但没有它你需要小心。

答案 3 :(得分:0)

最简单的方法就是在初创公司之间进行一次小睡眠,这就是我“解决”问题的方法。

另一个选择是在完成非线程安全的事情之后从tr1启动tr2,从tr2启动tr3。

他们如何相互依赖?你为什么不只有一个线程?

答案 4 :(得分:0)

您可以使用WaitHandles来表示线程已完成工作。