0
美好的一天,大中央调度函数调用
我有被封装在一个GCD块的函数,调用被封装在一个GCD块的其他的功能。
问题是,我需要呼叫者GCD块停止运行,直到我的函数[self callFunction]结束。
我可以编写另一个没有gcd封装的函数,但我不希望这样。有没有解决方法?
感谢
美好的一天,大中央调度函数调用
我有被封装在一个GCD块的函数,调用被封装在一个GCD块的其他的功能。
问题是,我需要呼叫者GCD块停止运行,直到我的函数[self callFunction]结束。
我可以编写另一个没有gcd封装的函数,但我不希望这样。有没有解决方法?
感谢
既然是你可以直接调用该方法通常并保存结果的块。然后抓取主队列,如果你需要更新任何用户界面或完成后做任何你需要的。
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);
发布您的代码。没有代码,我们将不得不对代码的工作方式做出假设。 – rckoenes 2013-05-14 06:53:32
根据你目前的问题,你似乎需要使用dispatch_sync而不是dispatch_async – 2013-05-14 07:04:47