2012-12-17 76 views
1

我找不到任何有關它的信息。我在我的應用程序中有一個dispatch_queue_t,我需要執行一些任務。但是這些任務需要一些時間,有時他們不應該再被調用,所以我想清理隊列。可能嗎?是否有可能使dispatch_queue_t爲空?

回答

4

對這些功能使用NSOperationQueue更方便。在將操作添加到隊列後,可以取消它們,甚至在需要時取消所有未決操作。

這裏有一個很好的教程,讓你開始: http://www.raywenderlich.com/19788/how-to-use-nsoperations-and-nsoperationqueues

+0

看起來像我需要的東西,但問題是,我想清除在Evernote SDK API中使用的隊列,我認爲它會如果我決定在那裏改變它,那麼要做很多工作。 – krzysiek

0

不,你不能從dispatch_queue_t刪除項目。你有兩個選項是:

  1. 你有工作項檢查,如果他們已經取消了在做自己的工作
  2. 掛起隊列前;這將不會刪除項目,但它會阻止他們運行
+0

我使用Evernote SDK工作了一下,並將其更改爲NSOperationQueue,並且按照您的寫法,首先檢查是否已取消任務。 – krzysiek

相關問題