我想在一个按钮单击中组合 2 个不同的按钮单击事件。我在这两个按钮单击事件中有两个线程来更新 winform 中的文本框。当我尝试组合这两个按钮时,线程同步运行,但我需要在 thread1 完成后运行 thread2。我怎样才能做到这一点?我尝试做 thread1.start 而不是 thread2.start 但它不起作用,因为所有点击事件都会立即执行。有没有人可以帮助我?谢谢。
问问题
2526 次
2 回答
4
你可以这样做
new Thread(() =>
{
Method1();
Method2();
}).Start();
或更好地使用 TPL
Task.Factory.StartNew(() => Method1())
.ContinueWith(t => Method2());
于 2012-12-23T20:28:14.573 回答
2
.Net 4: 如果您使用的是 .net 4 或更高版本,请查看 Tasks,尤其是ContinueWith 方法。这是一种更统一的方法,效果更好。
.Net 1-3.5: 如果您已经在自己管理线程,最好的方法可能是只有一个线程。
new Thread(DoJob1And2).Start()
其中方法定义为:
void DoJob1And2()
{
try
{
Job1();
}
finally
{
Job2();
}
}
void Job1()
{
// Do job 1
}
void Job2()
{
// Do job 2
}
于 2012-12-23T20:18:34.773 回答