4

我想在一个按钮单击中组合 2 个不同的按钮单击事件。我在这两个按钮单击事件中有两个线程来更新 winform 中的文本框。当我尝试组合这两个按钮时,线程同步运行,但我需要在 thread1 完成后运行 thread2。我怎样才能做到这一点?我尝试做 thread1.start 而不是 thread2.start 但它不起作用,因为所有点击事件都会立即执行。有没有人可以帮助我?谢谢。

4

2 回答 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 回答