ParseSourceCodeStudy icon indicating copy to clipboard operation
ParseSourceCodeStudy copied to clipboard

有疑问,Dispatch Source “帮” Dispatch Queue 实现暂停和恢复功能

Open liuzhiyi1992 opened this issue 8 years ago • 3 comments

dispatch queue本来就可以挂起和恢复,为什么说要借助dispatch source呢?

liuzhiyi1992 avatar Jul 10 '16 16:07 liuzhiyi1992

帮忙详细描述下“dispatch queue本来就可以挂起和恢复”,最好能贴一下代码,我看下咱们两个讲的东西是不是有出入。

ChenYilong avatar Jul 11 '16 01:07 ChenYilong

暂停恢复:使用dispatch_suspend() 和 dispatch_resume() 将队列挂起

取消:通过植入标识对单个任务进行“取消” __block BOOL cancelled = NO; void (^task)(BOOL) = ^() {
if (cancelled) { return; } //dosomething }; 也就是文中的通过property(running)来植入“取消”

liuzhiyi1992 avatar Jul 11 '16 02:07 liuzhiyi1992

@ChenYilong 有空的话帮忙看下,哈哈

liuzhiyi1992 avatar Jul 20 '16 15:07 liuzhiyi1992