アプリケーションがコード ブロックを非同期的に実行し、完了状態をコールバックで通知する場合、これらはすべてメイン スレッド (コールバック) で実行を終了しますか?
このコールバックで Core Graphics の描画とファイル操作を処理する正しい方法は何ですか?
現在、コールバックでこれらの命令を実行していますが、代わりにスレッドをトリガーしてこれらの命令を処理したいと考えています。
アプリケーションがコード ブロックを非同期的に実行し、完了状態をコールバックで通知する場合、これらはすべてメイン スレッド (コールバック) で実行を終了しますか?
このコールバックで Core Graphics の描画とファイル操作を処理する正しい方法は何ですか?
現在、コールバックでこれらの命令を実行していますが、代わりにスレッドをトリガーしてこれらの命令を処理したいと考えています。
UI 描画を行う場合、それはメイン スレッド上にある必要があります。これらの非同期ブロックが現在 (表向きは並行ディスパッチ キューで) 作業を行っているとしたら、そこですべての作業を行い、完成した製品を表示するときにのみ、メイン ブロックにメッセージを返します。コールバックがクラス内の他のメソッドを呼び出す場合、同時実行を処理する最も安全な方法は、ヘルパー オブジェクト (入力を受け取って出力を生成する小さなオブジェクト) を定義することです。
ヘルパーを作成し、必要なデータをアタッチし、キューのブロックで開始します。完了すると、完成品を抽出してレンダリングし、ヘルパー オブジェクトを削除するメイン スレッドにメッセージが返されます。
Core Graphics の経験はあまりありませんが、ブロックに関してはかなりの量の作業を行いました。
私の意見では、アプリケーションが (新しいスレッドで) コード ブロックを非同期的に実行する場合は、メイン スレッドでコールバックまたは通知を行うことをお勧めします。