Iphone 使块在串行队列中等待

Iphone 使块在串行队列中等待,iphone,ios,ipad,grand-central-dispatch,event-dispatch-thread,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*/ }); 在块中,我想进行一个异步调用,比如播放音频 我的主要问题是,一旦我进行异步调用,块就不再等待,它完成了整个

我在GCD中使用串行队列,就像

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

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

});
在块中,我想进行一个异步调用,比如播放音频

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

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

块不能等待,但执行它的线程可以

查看哪些线程允许您
等待
信号
线程

基本上,您分配一个
NSCondition
,在块中您将有
[条件等待]这将导致线程等待。

然后,当异步操作完成时,调用
[条件信号]这将向等待的线程发出继续的信号。

异步调用完成后,您是否收到回调?在这种情况下,您可以通过GCD使用完成处理程序。@PraveenS如果我没有错的话,我的完成处理程序将在播放音频的线程中执行。。但是我想在与串行队列相同的线程中执行回调方法。。实际上,所有串行队列都是组分派的一部分