iphone - Grand Central Dispatch 函数调用

标签 iphone ios grand-central-dispatch

美好的一天,

我有一个封装在 GCD block 中的函数,它调用另一个封装在 GCD block 中的函数。

问题是,我需要调用者 GCD block 停止运行,直到我的函数 [self callFunction] 结束。

我可以编写另一个没有 gcd 封装的函数,但我不想这样做。有什么解决办法吗?

谢谢

最佳答案

因为它是一个 block ,您可以正常调用该方法并存储结果。如果你需要更新任何 UI 或在完成后做任何你需要做的事情,然后捕获主队列。

    dispatch_queue_t queue = dispatch_queue_create("read disc", NULL);
dispatch_async(queue, ^{
   result = [self readDisc];
    dispatch_async(dispatch_get_main_queue(), ^{
      //update UI or do whatever you need to do with the result of readDisc
    });
});
dispatch_release(queue);

关于iphone - Grand Central Dispatch 函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16536654/

相关文章:

iphone - "initialiser element is not a compile-time constant"创建 GCD 队列时

iphone - 使用 AVAssetReader 从远程 Assets 读取(流)

ios - 两个应用程序在应用程序商店中拥有相同的所有者但不同的包标识符,它们可以有相同的 idfa

ios - MFMailComposeViewController 忽略 iOS 7 中的一些 UIAppearance 协议(protocol)

ios - 使用 AVCaptureMovieFileOutput 保存视频后不播放音频

ios - CC Parallax 节点视差比(解释)

ios - 在 iOS/Mac 上通过 GCD 实现多线程

swift - 将完成处理程序与 DispatchQueue 一起使用

iphone - 从 Objective C 调用 C++ 方法

iphone - 是否可以通过编程方式更改 Default.png 启动图像?