10

一時停止されたディスパッチを再開するために使用する必要がありますdispatch_resume(...);が、ディスパッチを再開するメソッドはアプリのいくつかの部分によって呼び出される可能性があるため、再開するように呼び出す前に、ディスパッチが一時停止されているかどうかを知る必要があります(ドキュメントには、ディスパッチの再開/一時停止のバランスを取り、一時停止よりも多くの再開を行うことはできません。そうしないと、「負の一時停止カウンター」で終了します。

ディスパッチが一時停止されているかどうかをテストする方法はありますか?

4

1 に答える 1

13

設計上、ありません(そして、キャンセルメカニズムがないのと同じように)。サスペンド/レジュームの概念は、保持/リリースと同じくらい慎重にバランスを取る必要があります

つまり、Aがキューを一時停止した場合、Aの詳細な知識がなくてもBがキューを再開できることを安全に知る方法はありません。そのため、ディスパッチAPIが一時停止されたクエリの複雑さを追加する理由はありません。そして、いたるところに発生するであろうバグのクラス全体を有効にします。

于 2011-01-31T21:29:49.903 に答える