ios-multithreading

    0熱度

    1回答

    我想在臨界區內同步調用一個完成處理程序(使用@synchronized block)。我試圖等待使用信號量的完成處理程序,但信號量信號永遠不會被調用。 下面是我在做什麼: NSNumber *lock = 0; @synchronized(lock) { // critical section code begins dispatch_semaphore_t sema = d

    1熱度

    1回答

    我認爲UIImagePickerController委託方法(或任何UIKit委託方法)在主線程中被調用。但是在這裏,當從圖庫或相機中選取圖像時,didFinishPickingMediaWithInfo方法似乎不會被調用,UIKit委託方法必須在主線程上調用嗎?顯式調度到主線程工作。在Apple文檔中也沒有提到這一點。 -(void)imagePickerController:(UIImageP

    0熱度

    1回答

    我有一個當用戶點擊一個按鈕時設置的本地通知。我想將其發送到後臺線程,然後更新UI。這是一個安全的方法嗎? DispatchQueue.global(qos: .background).async { // sends registration to background queue center.add(request, withCompletionHandler: {(error)

    0熱度

    1回答

    我來這裏是正確的需要螺紋的問題,但我似乎不能正確地優化它。 這裏是我的方法: -(void) method1 { // -1 to an NSInteger nsint1--; [self showActiviyIndicator:YES]; //act as loading screen [alloc database etc stuffs and

    0熱度

    1回答

    我從庫中運行一個函數,我看不到實現。 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ someClass.beginService(); }); 這個庫類調用我的類的委託函數。 class Mine: UIViewController, SomeClassDelegat

    1熱度

    2回答

    我是一名Android工程師,嘗試移植一些使用5個SERIAL調度隊列的iOS代碼。我想確保我以正確的方式思考事情。 dispatch_sync到串行隊列基本上使用該隊列作爲同步queue-只有一個線程可以訪問它,並且被執行的塊可以作爲一個關鍵區域被認爲。它立刻發生在當前thread- get_semaphore() queue.pop() do_block() release_semaph

    1熱度

    1回答

    我正在研究一個應用程序,該應用程序捕獲來自攝像機的幀,並混合由另一個線程更新的圖像。我的問題是,每500ms調用一次的圖像創建線程會消耗影響其他線程的峯值計算能力。 這裏是一些日誌說明: captureOutput(): used time: 0.027741014957428 , frame rate: 36.0477077545513 captureOutput(): used time:

    0熱度

    1回答

    對不起,對於初學者的問題。 我有一個操作取決於從網絡返回的數據的結果,並且操作可能需要另一個網絡請求。由於第一個網絡請求已經在datatask中調用過了,我想爲第二個網絡請求使用同一個線程,但不知道如何去做。任何提示? TKS let task = URLSession.shared.dataTask(with: request as URLRequest) { data, respo

    2熱度

    1回答

    當我嘗試GCD函數dispatch_barrier_async時,它按照預期在dispatch_queue_create創建的隊列上工作,而當我將它放在由dispatch_get_global_queue創建的全局隊列中時,障礙似乎不再有效= =,有人可以解釋它嗎?謝謝〜 the demo image

    2熱度

    1回答

    在swift3應用連續做我需要的代碼塊,以便運行: UIApplication.shared.beginIgnoringInteractionEvents() loadDataTask.resume() UIApplication.shared.endIgnoringInteractionEvents() 它正在的DispatchQueue.main.async()內運行(每一個網絡通話,