初期化時に を使用してシリアルGCD キューを作成しdispatch_queue_create
、割り当て解除呼び出し時にオブジェクトがありますdispatch_free
。オブジェクトの有効期間中、ディスパッチ ブロックがキューに追加されますが、キューも および を使用して停止および開始さdispatch_suspend
れdispatch_resume
ます。
dispatch_block_t
私の問題は、ある時点でオブジェクトが解放される可能性があり、割り当てが解除されたときに、整理のために、キューが中断されているかどうかに関係なく、ディスパッチキューとその中のすべてのオブジェクトを完全に削除したいということです。
私が理解しているように、キューは、その中のディスパッチブロックによって保持されなくなったという意味で「必要」でなくなるまで割り当てを解除しません。これにより、キューの割り当てを解除するには、最初にキュー内のブロックを実行して終了できるようにして、キューを空にする必要があると思います。
これを行うための最も簡単で堅牢な方法は何ですか?