2014-12-25 54 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

回答