我在做一个线程池,我想取消一项在任务队列或是正在执行的任务,如果这项任务在我想abort时已经执行完了就什么也不要做。
具体的情景时:当我想Abort一个任务时,如果它在任务队列Queue<Param>中我移除它,可是正当我要移除它时,有了空闲的线程,它自己已经从任务队列中移除,在线程池中执行了,而当我想在线程池中(我的一个哈希储存了Dictionary<Thread,Param>线程对象)找到这个线程实例并Abort它时,这个任务已经正常的结束了,我再Abort这个线程,此时这个空闲线程又引入了新的任务,当我真正Abort掉的是一个另一个任务
这里有两个非种特殊的情况,怎么避免其发生,能否给个简单的示例
1 回答
- 1 回答
- 0 关注
- 349 浏览
添加回答
举报
0/150
提交
取消