3

可能重复:
BackgroundWorker 和 Thread 之间的区别?

我在一次采访中被问到这个问题。这应该是什么答案?

4

4 回答 4

1

“后台”这个词意味着它比非后台线程执行的关键任务更少,并且在它们完成时并不重要。在 Java 中,这可能意味着使用守护线程。

从技术上讲,它们是同一件事,不同之处是主观的。

于 2012-09-06T21:10:11.410 回答
1

当您需要在后台执行长时间操作并从线程与 UI 交互时,最常使用后台工作线程。Backgroundworker 具有一些功能,可以更轻松地与 UI 交互。

于 2012-09-06T21:12:12.643 回答
0

“worker”和“background”线程都不是主/ UI 线程。

除非您有更多详细信息(例如,在 Language X 或 Framework Y 的上下文中),否则它们之间没有明显区别。但是,正如我认为的那样:

  • 工作线程 听起来可能属于工作人员池。在这种情况下,它可能会在完成任务后被重新使用(并且只有在工作池终止时才会停止)。
  • 后台线程 听起来像是被异步调用以完成单个任务。可能是为了避免 UI 线程阻塞。
于 2012-09-06T21:16:59.103 回答
0

BackgroundWorker 是一个 System.ComponentModel 类,可让您在单独的 Threadpool 线程上执行方法。Joe Albahari 有一篇很好的文章

工作线程是从主线程产生的线程的通用术语,通常与 UI 并行工作。

于 2012-09-06T22:31:13.713 回答