[英]Swift: Add operations to DispatchQueue/OperationQueue but launch the queue later
我有數據包進來,但在極少數情況下,處理它們的對象還沒有准備好。 我現在正在做的是
while (true)
循環檢查對象狀態這有效,但它非常丑陋。 我在想的是將掛起的操作添加到 OperationQueue 中,然后在處理對象准備好后啟動進程。
但是,在我告訴他們開始之前,我找不到任何允許我“暫停”操作的功能。
我該怎么辦?
您可以使用 NSOperationQueue 的isSuspended
屬性。
var isSuspended: Bool { get set }
來自蘋果的文檔:
當此屬性的值為 false 時,隊列會主動啟動隊列中准備執行的操作。 將此屬性設置為 true 可防止隊列啟動任何排隊操作,但已執行的操作會繼續執行。 您可以繼續向掛起的隊列添加操作,但在您將此屬性更改為 false 之前,不會安排執行這些操作。
請注意,將此屬性設置為 true 只會阻止尚未啟動的操作。 在您的情況下,您應該在初始化 NSOperationQueue 對象后將此屬性設置為 true。 准備就緒后,將isSuspended
設置為 false。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.