2012-09-06 55 views
3

可能重复:
Difference between BackgroundWorker and Thread?工作线程和backgroundworker线程之间的区别?

有人问我这个问题进行了采访。这应该是什么答案?

+0

这可能是类似的问题,请在其上具有外观 http://stackoverflow.com/questions/1506838/backgroundworker-vs-background-thread –

+0

另一个类似的问题http://stackoverflow.com/ question/4757159/difference-between-backgroundworker-and-thread –

+1

@MujassirNasir,第一篇文章的具体答案是[Matt Davis'](http://stackoverflow.com/a/1507337/1258147)。 – kurtzbot

回答

0

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

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

  • 一个工作线程听起来像它可能属于工人池。在这种情况下,它可能在完成任务后重新使用(并且只会在工作池终止时停止)。
  • A 后台线程听起来像它是异步调用来完成一项任务。可能保存UI线程阻止。
+0

这在我看来是一个完美的答案。当我告诉招聘人员背景工作者时,他说他没有提到背景工作者! –

1

“背景”一词意味着它执行的关键任务比非后台线程要少,当它们完成时它们无关紧要。在Java中这可能意味着使用守护进程线程。

从技术上讲,它们是相同的东西,不同的是主观的。

+2

我不会在单词“背景”和“不重要”之间建立强硬的关系。这可能不是真的。 – Tigran

+1

好吧,不太重要。 ;) –

1

当您需要在后台执行长操作并从线程与UI进行交互时,Backgroundworker线程最常用。 Backgroundworker有一些功能可以让它更容易地与UI进行交互。

0

BackgroundWorker是一个System.ComponentModel类,它允许您在单独的Threadpool线程上执行一个方法。 Joe Albahari拥有good writeup on it

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

相关问题