0

我正在使用GCD串行队列像制作块等待在串行队列

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

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

}); 
在我想打一个异步调用喜欢玩一个音频块

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

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

+0

当异步调用完成时,您是否收到回调?在这种情况下,您可以通过GCD使用完成处理程序。 – 2013-04-10 11:34:38

+0

@PraveenS如果我没有错,我的完成处理程序将在音频正在播放的线程中执行。但我想在与串行队列相同的线程中执行回调方法。实际上,所有串行队列都是组派遣 – user1495306 2013-04-10 12:02:41

回答

0

不能等待,但线程谁是exceuting就可以了。

查找到NSCondition,使您能够waitsignal线程

基本上你分配一个NSCondition和块你就必须[condition wait];这将导致线程等待。 然后,当异步操作完成后,您可以拨打[condition signal];,这将指示等待的线程继续。