3

重複の可能性:
BackgroundWorker とスレッドの違い?

インタビューでこんな質問をされました。これに対する答えは何ですか?

4

4 に答える 4

1

「バックグラウンド」という言葉は、バックグラウンド以外のスレッドよりも重要度の低いタスクを実行することを意味し、それらが完了したときにそれほど重要ではありません。Javaでは、これはデーモンスレッドを使用することを意味します。

技術的にはそれらは同じものであり、異なるものは主観的です。

于 2012-09-06T21:10:11.410 に答える
1

バックグラウンドワーカー スレッドは、バックグラウンドで長い操作を実行し、スレッドから UI を操作する必要がある場合に最もよく使用されます。Backgroundworker には、UI とのやり取りをより簡単にするいくつかの機能があります。

于 2012-09-06T21:12:12.643 に答える
0

BackgroundWorkerは、別のスレッドプールスレッドでメソッドを実行できるようにするSystem.ComponentModelクラスです。ジョーアルバハリはそれに良い記事を持っています。

ワーカースレッドは、メインスレッドから生成されたスレッドの総称であり、通常はUIと並行して機能します。

于 2012-09-06T22:31:13.713 に答える
0

「ワーカー」スレッドも「バックグラウンド」スレッドも、メイン/UI スレッドではありません。

詳細がない限り (たとえば、言語 X またはフレームワーク Y のコンテキストで)、それらの間に明確な違いはありません。しかし、私がそれらを考えると:

  • ワーカー スレッド は、ワーカーのプールに属しているように聞こえます。その場合、タスクの完了後に再利用される可能性があります (ワーカープールが終了したときにのみ停止されます)。
  • バックグラウンド スレッド は、1 つのタスクを実行するために非同期的に呼び出されたように聞こえます。おそらく、UI スレッドがブロックされないようにするためです。
于 2012-09-06T21:16:59.103 に答える