我設置到不同的隊列中運行,並調用延遲後的另一種方法塊:performSelector:withObject:afterDelay:不排隊選擇
piemanQ = dispatch_queue_create(PIEMAN_QUEUE_NAME, NULL);
dispatch_async(piemanQ, ^{
[self performSelector:@selector(sendReadyToPieman) withObject:nil afterDelay:1.0];
});
我希望第二個以後的@selector(sendReadyToPieman)
火災,但是什麼都沒發生。我已經通過performSelector:withObject:afterDelay:
上的doco讀過,它講述了通過當前隊列上的定時器添加的方法。我已經檢查了當前的隊列運行循環模式,但它返回nil。
我確定我以前做過這樣的代碼,但我已經在兩個不同的地方嘗試過這種情況,並且在兩種情況下它都沒有運行。但如果我用dispatch_after(...)
替換它一切正常。
任何人都可以點亮一下嗎?
一個很棒的建議。我還沒有使用過NSOperation隊列,但是我懷疑交換給他們會將我有的其他代碼串起來。我必須試一試,看看會發生什麼。 – drekka
你的代碼看起來會比所有這些C方法好得多:) –
我同意你在這裏所說的一切。但是,唉,它並沒有回答原來的問題。這個「NSOperationQueue」的演繹會遇到與原始問題中的代碼完全相同的問題。 – Rob