[英]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.