如何获得线程执行完成事件

时间:2013-01-02 09:45:13

标签: c# multithreading

我正在创建一个新线程来调用其中的函数。

Thread th = new Thread(My_Function);
th.start();

我想在完成这个线程执行时做点什么。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:11)

至少有两种可能的解决方案:

<强> BackgroundWorker的

使用BackgroundWorker执行代码,并使用RunWorkerCompleted事件执行完成后运行的代码。

A BackgroundWorker将基于事件的异步模式包装成一个非常易于使用的机制,包括进度报告和取消。请参阅此BackgroundWorker tutorialthis SO回答。

任务(.NET 4.0及更高版本)

使用Task对象,并使用ContinueWith方法定义完成第一个任务后需要执行的代码。

答案 1 :(得分:-2)

你可以使用

这样的东西
if(th.isAlive())
{...}