我在GCD中使用串行队列,如
dispatch_queue_t myCustomQueue;
myCustomQueue = dispatch_queue_create("com.example.MyCustomQueue", NULL);
dispatch_async(myCustomQueue, ^{
....
/* some asyncronus call*/
});
在块中我想进行异步调用,比如播放音频,
我的主要问题是,一旦我进行异步调用,块就不会等待它完成整个块的执行。
我可以让块等待一段时间,直到异步调用的某些回调返回
答案 0 :(得分:0)
块不能等待,但正在排除它的线程可以。
查看NSCondition,您可以wait
和signal
个帖子
基本上你分配了一个NSCondition
,并且在块中你将拥有[condition wait];
,这会导致线程等待。
然后,当异步操作完成时,您调用[condition signal];
,这将指示等待线程继续。