在学习异步编程时,想到一个问题,假如我使用BeginInvoke调用了一个方法,这个方法很耗时,或者是线程池满员,它一直在队列中待着了,我等不了它的结果了。有这样的方法吗,设置个时间,比如超过1分钟我就不再等了。还有一个问题是被异步调用了,方法在线程池里肯定会执行是吧,除非这个线程出了点什么事,当像出现我前面的那种超时不想等了的情况,可能过几分钟轮到它了,还是会执行,没法取消。
1 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
我们来分析一下 按照你的思路 首先 我们不用异步线程是吧,我们只能用单一线程咯,这样的话 单线程就是一条单人行道 假设我们有楼主这样的方法 一 我们要有一个侦测器 检测 服务开启的动作 二 服务 执行 开启的动作 这样的话 和单线程 只能执行一个动作 矛盾 我认为 这个方法是没有的 服务的开启中 经常 碰到楼主 面临的问题 在服务设计中 ,开启的过程是直接赋予异步线程中的 我的理解 服务的开启触发 仅仅是通知某个服务 开始服务啦 具体 准备服务的时间 有多 对于服务管理器是不需要关注的
- 1 回答
- 0 关注
- 555 浏览
添加回答
举报
0/150
提交
取消