2017-01-04 10 views
0

iOS Swiftアプリケーションは、複数のスライダからの入力に基づいて長い(2番目以上の)計算を実行します。私はスライダが移動され、入力パラメータが変更されるたびに計算を再開したいと思います。これはバックグラウンドスレッドで計算を行う必要があることを意味しますが、計算を停止して再開するための最良の方法は何ですか?バックグラウンドスレッドを毎回削除すると、何百回も再起動することになります。オブジェクトを再作成する際に過度のメモリを使用することを避けるにはどうすればよいですか?入力が変更されたときに長時間の計算を再開する

おかげで、

ジュリアン

答えて

0

あなたができないか、バックグラウンドスレッドを殺すべきではないまず第一に。より理解を深めるためには、linkが必要です。アクティビティインジケータを表示し、最初の計算実行を待つ必要があることを提案したいと思います。メインスレッドで計算すると、バックグラウンドスレッドより時間がかかりません。

+0

このコメントと他のリンクへの参照をありがとう。私はバックグラウンドスレッドを殺さないという点を知ることができます。 – Julian7

0

(たとえば、新しい反復を開始する前に)長い計算コードにチェックポイントを入れて、入力パラメータが変更されているかどうかを確認します。はいの場合は、中止してもう一度開始してください。

ここで、計算を何度も再開したくない場合は、スライダの変更と長い計算の開始の間に遅延を追加することができます。このようにして、バックグラウンド作業を開始する前にユーザーにいくつか調整を加える機会を与えます。

+0

これらのコメントありがとうございます。非常に役立ちます。あなたは私が思ったよりも簡単に問題を解決することができました。 – Julian7

関連する問題