可能是锁的问题

我在做一个线程池,我想取消一项在任务队列或是正在执行的任务,如果这项任务在我想abort时已经执行完了就什么也不要做。

具体的情景时:当我想Abort一个任务时,如果它在任务队列Queue<Param>中我移除它,可是正当我要移除它时,有了空闲的线程,它自己已经从任务队列中移除,在线程池中执行了,而当我想在线程池中(我的一个哈希储存了Dictionary<Thread,Param>线程对象)找到这个线程实例并Abort它时,这个任务已经正常的结束了,我再Abort这个线程,此时这个空闲线程又引入了新的任务,当我真正Abort掉的是一个另一个任务

这里有两个非种特殊的情况,怎么避免其发生,能否给个简单的示例

 

隔江千里
浏览 333回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP