2016-08-31 84 views
0

我的應用程序需要一些簡單的併發性,所以我已經爲這些建議選擇了GCD。 一切都很好,我使用一個具有高優先級的全局隊列(Apple的默認隊列之一)。但我陷入隊列控制。我需要在某些用戶操作後強制取消此隊列中的所有進程。 此外,是否有可能檢查一個全局隊列是否有任何任務?如果用戶要求,這將幫助我不填充相同的任務。GCD全局隊列控制

+0

如果你需要更多的控制,使用NSOperationQueue。 –

+0

你應該使用建立在GCD之上的'NSOperation'和'NSOperationQueue'。 'NSOperation's是可取消的,'NSOperationQueue'具有'operations'和'operationCount'屬性。 –

+0

@MartinR沒有GCD方法來處理它?基本上,NSOperationQueue可以完成所有這些工作? –

回答

0

一般來說,GCD適用於輕量級併發管理。暫停一個調度隊列,它只是dispatch_suspend(queue)(只有自己創建的隊列,既不是主隊列也不是全局隊列)。在你的情況下,NSOperationQueue更合適