我有被分派到串行隊列幾個任務,特別是一些被分派到一個組。完成這些任務後,我想讓用戶選擇取消它們,即使它們已經被執行。iPhone - 取消排隊的操作GCD
我找不到任何方法來取消排隊的任務,然後我想到我可以創建一個布爾標誌,例如調用quitRender並測試以查看該標誌是否爲true並退出渲染,但這不起作用,我的解釋是:當任務被觸發時,flagsRenderRender是NO,因此當它們在塊中執行並且塊凍結它們的值時,它們就像它們在啓動時那樣凍結,塊將不會看到更改並且永遠不會退出。
然後我嘗試另一種方法:我創建像
- (BOOL) cancelRender {
return quitRender;
}
的方法,將運行併發送塊中的變量的當前值,但顯然塊繼續看到NO的quitRender。
我錯過了什麼嗎?如何做這項工作?
謝謝。
你能把這個代碼翻譯成你所謂的「原子功能」嗎? – SpaceDog
我加了一個原子函數的例子。 –
哇!這非常明顯!我想這是線程安全的,對吧?感謝分享! – SpaceDog