如何释放我的串行队列的块堆栈?我已经把异步执行的一些块放入队列中,并且在某些时候我想完全释放这个队列为空。我正在使用低级别dispatch_queue_t
。可能吗?谢谢。空的和完全空闲的串行队列
回答
你正在使用什么样的队列?
是NSOperationQueue ??
然后-[NSOperationQueue cancelAllOperations]
应该做的工作。
抱歉没有更具体。我正在使用低级别的'dispatch_queue_t'。 – user500 2013-03-19 09:41:29
从其他来源,我得到以下。请阅读这个。 “NSOperationQueue可以让你更好地控制你的操作是如何执行的,例如,你可以定义单个操作之间的依赖关系,这对于普通的GCD队列来说是不可能的,也可以取消已经在NSOperationQueue中入队的操作只要操作支持它),当你将一个块排入GCD调度队列时,它肯定会在某个时候执行。“ – Xcoder 2013-03-19 09:45:06
是的,但我需要串行FIFO队列和'NSOperationQueue'不起作用。 – user500 2013-03-19 09:53:45
- 1. 锁定空闲队列入队如果不为空
- 2. 队列为空
- 3. 的Python:在空闲
- 4. Chart.js和右侧空闲空间
- 5. 异步队列在kill时不会空闲
- 6. 锁定空闲队列,已加载vs未加密CPU
- 7. 芹菜+ RabbitMQ的空队列
- 8. 可变长度的空闲列表
- 9. HDFS平衡器迭代全部空闲
- 10. Tomcat的连接池和空闲连接
- 11. SQL Server将“表空闲空间”移动到“数据库空闲空间”
- 12. aix中的空闲会话
- 13. Android的空闲时间?
- 14. UIApplication的空闲计时器
- 15. remove_if后的空闲内存
- 16. Java - FloatBuffers的空闲内存
- 17. 检测android空闲
- 18. 负空闲内存
- 19. WF 4.0 WorkflowServiceHost和instace事件(中止,完成,空闲等)
- 20. 全局串行调度队列
- 21. SQL完全空数据库
- 22. c#linqtosql datagridview完全为空
- 23. 完全删除空数组
- 24. loadHTML()完全空白页
- 25. 集解析并不在Pydev的(Python)的完美空闲
- 26. clFinish挂起空队列
- 27. 幻影与空队列
- 28. 使DIV块流入空闲空间
- 29. 删除空字符串列的空间
- 30. .Rmd文件打开为完全空的
你想取消当前正在执行的块吗?基本上不能直接通过'dispatch_queue'完成,你需要使用像NSOperationQueue这样的更高级别的构造,否则你需要在你的调度队列执行中添加一个快速退出取消。 – gaige 2013-03-19 11:03:52
我不认为“正在执行块”是正确的,因为我们正在谈论FIFO队列。假设我想释放队列,目前可能正在执行阻塞操作。我明白,如果当前正在执行的block不能被取消,那么如果这个block会完成执行,那就没事了。但是我想取消剩余的堆栈以供执行。快速退出取消是什么意思? – user500 2013-03-19 11:16:55
调度队列中没有任何取消方法。所以,所有的块都会执行,并且在某个时间点会变成当前执行的。没有调度队列的冲洗机制。 – gaige 2013-03-19 11:29:45