2

SwingWorkerスレッドの使用方法は知っていますが、使用するかどうかを決定するための正確な基準はまだありません。

I / Oは明らかなようですが、潜在的に大きなコレクションで動作するメソッドについてはどうでしょうか。

基準は実際の実行時間である可能性がありますが、どのような数値(ミリ秒単位)が適格でしょうか?

4

5 に答える 5

3

重要なのは、UI の応答性です。

Jef Raskin (Mac UI で有名) は、最大遅延を 50 ミリ秒に制限する必要があると述べました。RISC OS のガイドラインでは 100 ミリ秒と言われています。ボタンのクリックは約 50 ミリ秒なので、リリース時にアクションを実行したい場合は、ユーザー モデルが一般的にクリック フォー アクションであるため、すばやくアクションする必要があります。140 ミリ秒を超えると、応答がなくなるだけでなく、UI 応答がユーザー アクションから切り離されているように見えます (たとえば、O'Reilly の Mind Hacks を参照してください)。

250 ~ 350 ミリ秒で、(通常の) ユーザーは何か問題が発生したと考えるでしょう。

反対に、アニメーション (たとえば) のスクロールの錯覚を得るには、8 fps (およびレンダリングを含む) が必要です。また、ゲーマーが fps を好むこともご存知でしょう。

ただし、私は利用できない最高のソフトウェアよりも多かれ少なかれ機能するソフトウェアを好みます。そうは言っても、この編集の途中でディスクをハンマーで叩いている間、Opera が数分間ロックアップしていたのは、私を喜ばせませんでした。

于 2009-10-27T23:42:55.277 に答える
1

私にとっては1秒です。

処理にそれ以上かかると、UI がフリーズします。そのような状況では、「ビジー」ペイントまたは進行状況バーを表示する方がはるかに優れています。

使用しているアプリケーションが応答するまでどのくらい待ちますか? IDE や MS-Word などを開いたとします。ほとんどの場合、アプリケーションの読み込み中にプログレス バーまたはその他のアニメーションが表示されます。これは、ドキュメント/プロジェクト/その他が 2 秒で開くほど小さい場合でも発生します。

于 2009-10-27T22:52:05.710 に答える
0

長時間実行されるタスクは、ユーザーがUIの再描画の不具合や遅延に気付くのに十分な長さです。ラベルのテキストを設定することはおそらく「長時間」ではありませんが、画像をオフスクリーンビットマップに描画するのに数ミリ秒かかるだけで、UIの再描画が目立つほど長く遅れる可能性があります。

于 2009-10-27T23:13:48.050 に答える
0

基本的に、処理にかかる時間を予測できない場合は、別のスレッドに配置することをお勧めします。これにより、データが悪いなどの極端な場合でもアプリケーションの応答性が維持されるためです。良い候補は次のとおりです。

  • モデル内のすべてのフィールドに対して高価な操作を行う。
  • 外部データ ソースまたは宛先に応じて。それが低速のネットワーク ドライブか、または類似のものであるかどうかはわかりません。

しかし、ループ (for/while のいずれか) がある場合は、単純にルールを作成して、SwingWorker に入れないのはなぜでしょうか ?

于 2009-10-27T23:32:56.887 に答える