美好的一天,
我有一个封装在 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/