Iphone 使块在串行队列中等待
我在GCD中使用串行队列,就像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*/ }); 在块中,我想进行一个异步调用,比如播放音频 我的主要问题是,一旦我进行异步调用,块就不再等待,它完成了整个
dispatch_queue_t myCustomQueue;
myCustomQueue = dispatch_queue_create("com.example.MyCustomQueue", NULL);
dispatch_async(myCustomQueue, ^{
....
/* some asyncronus call*/
});
在块中,我想进行一个异步调用,比如播放音频
我的主要问题是,一旦我进行异步调用,块就不再等待,它完成了整个块的执行
我可以让块等待一段时间,直到来自异步调用的某个回调返回块不能等待,但执行它的线程可以
查看哪些线程允许您等待
和信号
线程
基本上,您分配一个NSCondition
,在块中您将有[条件等待]代码>这将导致线程等待。
然后,当异步操作完成时,调用[条件信号]代码>这将向等待的线程发出继续的信号。异步调用完成后,您是否收到回调?在这种情况下,您可以通过GCD使用完成处理程序。@PraveenS如果我没有错的话,我的完成处理程序将在播放音频的线程中执行。。但是我想在与串行队列相同的线程中执行回调方法。。实际上,所有串行队列都是组分派的一部分