我正在创建一个新线程来调用其中的函数。
Thread th = new Thread(My_Function);
th.start();
我想在完成这个线程执行时做点什么。
有没有办法做到这一点?
答案 0 :(得分:11)
至少有两种可能的解决方案:
<强> BackgroundWorker的强>
使用BackgroundWorker
执行代码,并使用RunWorkerCompleted
事件执行完成后运行的代码。
A BackgroundWorker
将基于事件的异步模式包装成一个非常易于使用的机制,包括进度报告和取消。请参阅此BackgroundWorker tutorial和this SO回答。
任务(.NET 4.0及更高版本)
使用Task
对象,并使用ContinueWith
方法定义完成第一个任务后需要执行的代码。
答案 1 :(得分:-2)
你可以使用
这样的东西if(th.isAlive())
{...}