我正在创建一个新线程来调用其中的函数。
Thread th = new Thread(My_Function);
th.start();
我想在这个线程执行完成后做一些事情。
有什么办法可以做到这一点吗?
至少有两种可能的解决方案:
后台工作者
Use a BackgroundWorker http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx执行您的代码,并使用RunWorkerCompleted http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.runworkercompleted.aspx事件来执行完成后运行的代码。
A BackgroundWorker
将基于事件的异步模式包装成一个非常易于使用的机制,包括进度报告和取消。看到这个后台工作者教程 http://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspx and this https://stackoverflow.com/questions/6481304/how-to-use-a-backgroundworker所以回答。
任务(.NET 4.0 及更高版本)
Use a Task http://msdn.microsoft.com/en-us/library/system.threading.tasks.task.aspx对象,并使用ContinueWith http://msdn.microsoft.com/en-us/library/system.threading.tasks.task.continuewith.aspx方法来定义第一个任务完成后需要执行的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)