2014-12-25 27 views
0

删除派出块我有这样的代码:如何使用GCD

_myQueue = dispatch_queue_create("com.myapp", DISPATCH_QUEUE_SERIAL); 
      _mainQueue = dispatch_get_main_queue(); 

和很多这个块需要一些秒(或分)

dispatch_async(_myQueue, 
       ^{ 
        if(canRun){ 
        dispatch_async(_mainQueue,^{/* updating interface here */}); 
        // code here 
        } 
       }); 

我的应用程序有一个“停止”按钮来尝试停止所有的工作,BOOL“canRun”帮助我执行所有的块,而不用做任何事情.....但总是必须等待每个块的完成,直到队列变为0. 有没有立即“清理”队列的方法是这样做的吗? 目标是停止进程并重新开始而不关闭并重新打开应用程序。 该项目在ARC下工作。

+2

为什么不使用NSOperationQueue?你只是重新发明了一个优秀的车轮,你已经得到了... – matt

+1

也许这篇文章可能有用吗? http://stackoverflow.com/questions/9546385/kill-items-in-a-dispatch-async-queue-in-ios – gimpycpu

+0

是的,我发现它很容易更新这样的界面...... – Mike97

回答