1

dispatch_async(dispatch_get_main_queue()いくつかのバックグラウンド スレッドから呼び出します。ただし、ディスパッチ ブロック内のコードが実行されない場合があるようです。これは、非同期にディスパッチし、メイン キューがコードを実行する前にスレッドが終了したためでしょうか?

4

2 に答える 2

1

dispatch_async() 呼び出しが返された瞬間、それを呼び出したスレッドがその後終了するかどうかは重要ではありません。いわば「要求はシステム内にあります」! これらの「時折」のケースでは、何か他のことが起こっています。あなたのプログラムには、メイン関数の最後に実行ループがあるか、dispatch_main() が呼び出されていますか? これがあなたが説明しているCocoa/iOS/POSIXアプリケーションであるかどうかは明確ではありません.

于 2013-06-19T16:20:17.910 に答える