使块在串行队列中等待

时间:2013-04-10 11:27:45

标签: iphone ios ipad grand-central-dispatch event-dispatch-thread

我在GCD中使用串行队列,如

dispatch_queue_t myCustomQueue;
myCustomQueue = dispatch_queue_create("com.example.MyCustomQueue", NULL);

dispatch_async(myCustomQueue, ^{
    ....
/* some asyncronus call*/

});

在块中我想进行异步调用,比如播放音频,

我的主要问题是,一旦我进行异步调用,块就不会等待它完成整个块的执行。

我可以让块等待一段时间,直到异步调用的某些回调返回

1 个答案:

答案 0 :(得分:0)

不能等待,但正在排除它的线程可以。

查看NSCondition,您可以waitsignal个帖子

基本上你分配了一个NSCondition,并且在块中你将拥有[condition wait];,这会导致线程等待。 然后,当异步操作完成时,您调用[condition signal];,这将指示等待线程继续。