在Grand Central Dispatch中,dispatch_async的过早退出

3
假设我正在使用dispatch async运行一些代码...有没有办法在其完成之前终止它创建的线程?例如,当用户单击取消按钮时。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    //start doing something here.. break bofore it finishes? 


    dispatch_async(dispatch_get_main_queue(), ^{

    //main thread stuff..   

    });



});

抱歉,关于那个问题。简单来说我只需要使用一个标记。 - Jinah Adam
1
是的,在异步操作中设置一个标志来请求取消,并在安全取消的指定点检查取消状态(确保进行必要的清理)。 - David Gelhar
1
点击此处查看完整讨论.. https://dev59.com/PFXTa4cB1Zd3GeqP3Z9O - Fattie
1个回答

3

David是正确的。GCD没有内置的取消方法。这取决于客户端(即你)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接