方法中 怎么等待子线程结束后在返回结果
答案:2 悬赏:50 手机版
解决时间 2021-04-15 05:45
- 提问者网友:聂風
- 2021-04-14 09:37
方法中 怎么等待子线程结束后在返回结果
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-04-14 10:14
这个问题有点奇怪。。。一般情况需要用线程的话都是异步的,如果是需要等待返回值做处理的情况大部分都是同步的不需要用到多线程(除非是响应式,即线程执行完了,然后促发某个方法来处理某个结果),这种情况的话最好是单独设置一个静态变量来记录这个值,不是用返回值这种概念来做的。。。。。
这个情况用线程做需要处理很多东西,要监听线程的执行情况,或者注册一个事件,线程执行完了促发这个事件,再用事件响应函数来处理结果,不知道你是不是确定这种需求。
如果是winform程序的话就很简单了,直接用backgroundworkder(托管式的后台线程,由系统自动分配线程池中的线程进行异步处理,可以看做多线程的一种解决方案)这个控件就好了。。。直接有异步执行方法和结果事件监听。。。
这个情况用线程做需要处理很多东西,要监听线程的执行情况,或者注册一个事件,线程执行完了促发这个事件,再用事件响应函数来处理结果,不知道你是不是确定这种需求。
如果是winform程序的话就很简单了,直接用backgroundworkder(托管式的后台线程,由系统自动分配线程池中的线程进行异步处理,可以看做多线程的一种解决方案)这个控件就好了。。。直接有异步执行方法和结果事件监听。。。
全部回答
- 1楼网友:动情书生
- 2021-04-14 10:50
在你的线程的start() 后面这样写
thread.join();(thread是你的线程名) 是指阻塞主线程,一直等待thread线程结束,才继续往下执行...
这样的等待会卡住主线程 。最好使用委托来完成相应的操作。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯