2010-01-26 137 views
9

我正在尋找重新排序NSOperationQueue的方法。重新排序NSOperationQueue

我可以取消所有的操作,並按照我想要的順序折騰回來,但是我希望有一點清潔。有什麼想法嗎?

回答

21

NSOperationQueue與底層GCD隊列之間的主要區別在於NSOperation支持操作之間的依賴關係。 NSOperationQueue在其所有依賴關係完成之前不會安排操作。在可用的操作中,選擇最高優先級的操作接下來運行。

由於操作隊列可能同時運行多個操作(根據maxConcurrentOperations),所以在隊列上沒有嚴格的順序意義。使用依賴關係API或更改操作權限會更好。

我相信你可以在添加操作到隊列後改變依賴關係和優先級。

+0

優先,是的。這會讓我足夠接近。謝謝! – mousebird 2010-01-26 22:20:03

6

無法對隊列中的操作進行重新排序。如果您需要表達一個操作必須來到另一個操作,請使用依賴性API來執行此操作。

有關更多信息,請參閱NSOperationQueue文檔。概述的前兩段討論依賴關係。