[英]Making a block wait in a serial queue
我在GCD中使用串行队列,例如
dispatch_queue_t myCustomQueue;
myCustomQueue = dispatch_queue_create("com.example.MyCustomQueue", NULL);
dispatch_async(myCustomQueue, ^{
....
/* some asyncronus call*/
});
在该块中,我想拨打一个异步电话,例如播放音频,
我的主要问题是,一旦我进行异步调用,该块就不会等待,它会完成整个块的执行。
我可以让该块等待一段时间,直到异步调用返回一些回调
块不能等待,但是执行它的线程可以。
查看NSCondition ,它使您可以wait
和发signal
线程
基本上,您分配一个NSCondition
并在该块中具有[condition wait];
这将导致线程等待。 然后,当异步操作完成后,您调用[condition signal];
这将通知等待线程继续。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.