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];,這將指示等待的線程繼續。