0

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

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

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

});

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

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

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

4

1 回答 1

0

不能等待,但正在执行它的线程可以。

查看NSCondition使您能够waitsignal线程

基本上你NSCondition在你将拥有的块中分配一个 and ,[condition wait];这将导致线程等待。然后,当异步操作完成时,您调用[condition signal];它将发出等待线程继续的信号。

于 2013-04-10T12:01:17.190 回答