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 に答える