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()内运行(每一个网络通话,