GCD関数dispatch_barrier_async
を試してみると、によって作成されたキューで期待どおりに機能しましたdispatch_queue_create
が、によって作成されたグローバルキューに配置するとdispatch_get_global_queue
、バリアが機能しなくなったようです= =、誰か説明できますか? ありがとう〜
デモ画像
質問する
692 次
2 に答える
3
これは驚くべきことではなく、文書化された動作です。
これを使用して自分で作成したキューにブロックを追加すると、完了するまで他のすべてのブロックがブロックされます。パブリック キューに追加すると、次のように動作します。dispatch_async
https://developer.apple.com/reference/dispatch/1452797-dispatch_barrier_asyncのドキュメント
どの州:
指定するキューは、dispatch_queue_create 関数を使用して自分で作成した並行キューでなければなりません。この関数に渡すキューがシリアル キューまたはグローバル同時実行キューの 1 つである場合、この関数は dispatch_async 関数のように動作します。
于 2016-07-31T10:49:36.407 に答える