5
私はアプリケーション内のブロックで多くの非同期実行を行います。どのように彼らはメインスレッドではないすべてのスレッドを殺すために?
しかし、特定のイベントがアプリケーションに表示される場合は、メインスレッドではないすべてのスレッドを強制終了する必要があります。
すべてのブロックの実行を停止することはできますか?または、他の言葉では、彼らは主なスレッドではないすべてのスレッドを殺す?
PS:私はNSOperationQueueの中でブロックを実行しようとしましたが、私の最初の操作は以下のような場合にはうまくいきません。
私のビューでは写真が表示され、サムネイルを読み込んで非同期で開始し、実際の写真を充電し、読み込まれるとサムネイルの代わりに表示されます。 しかし、ユーザーが重い写真をバックグラウンドで読み込んでいて、次の写真にスワイプすると、以前の重い写真はバックグラウンドで読み込み中であり、新しい写真が軽い場合は重い写真の読み込みが終了し、ビュー上に新しい写真が表示されます。そこで、私のコードでは、ユーザーが次の写真にスワイプすると、すべての背景スレッドを停止しようとしました。それが私の問題です。 –
これは、スレッドを強制終了する必要のない古典的な使用例です。キャンセル可能なNSOperationとしてイメージロードを実装し、イメージが不要になったときにイメージのロードをキャンセルすることをお勧めします。 – zoul