我在iPad上有一個功能,我需要依次運行3個步驟,比如說task1,task2,task3。 Task2需要從服務器加載一些數據。所以我需要把task2放到一個單獨的後臺線程中。如何向Xcode的主線程發送消息或通知?
- (IBAction)dbSizeButton:(id)sender {
//Task1......
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
//Task2 .....which go to server and download some stuff and update database.
dispatch_sync(dispatch_get_main_queue(), ^{
//Task3, continue to work on UI
});
});
}
但是看起來發生了什麼是應用程序在Task2啓動時經常被殺死。我不確定爲什麼。我可以看到Task2在單獨的線程中執行。所以我想知道,如果不是這樣做,而不是使用GCD,我可以在Task2結束時向主線程發送消息或通知,以便啓動Task3?如何做到這一點?
這非常有趣。我會明天嘗試一下,看看它是否適合我。非常感謝。 – user518138