grand-central-dispatch

    -2熱度

    1回答

    我有一個被多次調用的方法。但我只需要在最後的方法調用中採取行動。我試圖dispatch_async,但沒有工作,因爲仍然被呼叫排隊: -(void)doingSomething:(NSString*)someValue { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    -1熱度

    1回答

    - (void)viewDidLoad { [super viewDidLoad]; dispatch_queue_t queue = dispatch_queue_create("myQueue", DISPATCH_QUEUE_CONCURRENT); for (int i = 0; i < 10000; i++) { dispatch_async(q

    0熱度

    1回答

    我創建了一個用於下載數據的網絡文件,並且我想將數據分配給另一個視圖控制器,以便我可以使用註釋填充地圖。數據下載成功,但我無法將其分配給視圖控制器。當我將網絡代碼包含在視圖控制器中並使用DispatchQueue.main.async時,我只能使它工作。我想保持網絡文件和視圖控制器分開。任何見解將不勝感激。提前爲許多代碼行道歉。 聯網文件如下: import UIKit class Networ

    1熱度

    1回答

    我怎麼能等待本身具有異步操作完成的功能? 讓我給你舉個例子: Function_A獲取從圖庫中的照片。提取操作將使用提取閉包異步執行。 我打電話Function_A在Function_B,我想等待照片抓取操作完成,然後繼續我的代碼。 我已經試過什麼: 我用調度組,但並未奏效。我也嘗試在同步塊中調用Function_A,這也是不成功的。 我怎麼能等待這個操作完成?可以因爲將讀取操作運行到另一個隊列而

    -1熱度

    1回答

    我有存儲在遠程數據庫中的博客文章。用戶可以評價和/或評論每篇文章。所以我需要關閉1或2個不同的網絡請求。但我必須等到他們(或它)完成。 什麼是以下情形的最佳做法: func updateRatingAndComment(){ if commentTextView.text != "" { updateComment() } if ratingVie

    4熱度

    2回答

    我有這樣的代碼: let goAheadAction = UIAlertAction(title: "Go Ahead", style: .default) { _ in let dispatchGroup = DispatchGroup() dispatchGroup.enter() Server.POSTRequest(accessPoint: "/UserSe

    0熱度

    1回答

    我目前有一個數組迭代通過價值圖像路徑,並希望異步檢索這些圖像在for循環內的第一個。我試過使用兩個分派組,但完成處理程序總是在檢索圖像之前返回。 static func getAllEntriesWithDisplayModel(completion: @escaping (_ models: [EntryDisplayModel]) ->()) ->(){ let entries =

    1熱度

    1回答

    我正在使用以下函數獲取metadataObject並將其發佈到服務器。 func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) 現在我想一個定時器(計數器),因此當用

    0熱度

    2回答

    我知道併發DispatchQueue允許其中的代碼立即返回,因此不會阻塞調用線程。這通常用於加載大量數據的後臺任務。 我還了解到完成處理程序(例如,在URLSession中)允許在某些任務完成後執行代碼內部處理程序。 我的問題是:這是否意味着併發調度隊列和完成處理程序有重疊的目的?如果我已經使用完成處理程序,那麼不需要用併發調度隊列來包裝它嗎? 例如,下面是一個使用URLSession的耗時數據加

    0熱度

    1回答

    我在iOS上編寫類似於工作線程或後臺線程的東西。每次有任務進入時,我都會把它放到後臺線程中。但問題是,我不想每次都使用這個dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{});,因爲它會使任務在不同的線程中運行,並且創建一個線程需要很多時間。 所以我的問題是如何使一個GCD隊列,並把它運