我在我的應用程序中使用Grand Central Dispatch以便在後臺運行方法。該方法基於用戶的輸入來計算一些數學數據,並且需要一些時間來這樣做。請記住它不使用互聯網。取消派遣隊列
無論何時加載主視圖,我都運行這個背景「計算」方法(這是一個調度隊列)。問題是,如果用戶在後臺運行方法時切換應用程序中的視圖,則應用程序會崩潰。
有什麼辦法可以「取消」隊列/停止代碼塊在用戶切換視圖時運行嗎?另一種想法是通過查看iPhone Weather.app。當天氣加載時,它會在後臺下載數據,並在下載時按下角落中的小信息按鈕不會使應用程序崩潰。
謝謝!
queue = dispatch_queue_create("com.mycompany.myqueue", 0);
dispatch_async(queue, ^{
//make some complicated calculations
});