我记得很多年前(2005年)我在我的代码中使用BackgroundWorker而没有使用可视化组件,但我不记得是什么(不幸的是我很忘记并且在我停止后很快忘记了所有内容)使用它)。也许我正在扩展BackgroundWorker类。您能否以这种方式链接到使用BackgroundWorker的好例子?
答案 0 :(得分:33)
This文章清楚地解释了您需要的所有内容。
以下是使用BackgroundWorker的最低步骤:
- 实例化BackgroundWorker并处理DoWork事件。
- 可选择使用对象参数调用RunWorkerAsync。
醇>然后将其设置为动态。传递给RunWorkerAsync的任何参数都将通过事件参数的Argument属性转发到DoWork的事件处理程序。这是一个例子:
class Program
{
static BackgroundWorker _bw = new BackgroundWorker();
static void Main()
{
_bw.DoWork += bw_DoWork;
_bw.RunWorkerAsync ("Message to worker");
Console.ReadLine();
}
static void bw_DoWork (object sender, DoWorkEventArgs e)
{
// This is called on the worker thread
Console.WriteLine (e.Argument); // writes "Message to worker"
// Perform time-consuming task...
}
}