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