您是否可以链接到使用BackgroundWorker的一个很好的示例,而无需将其作为组件放在表单上?

时间:2011-06-16 00:22:14

标签: c# .net multithreading backgroundworker

我记得很多年前(2005年)我在我的代码中使用BackgroundWorker而没有使用可视化组件,但我不记得是什么(不幸的是我很忘记并且在我停止后很快忘记了所有内容)使用它)。也许我正在扩展BackgroundWorker类。您能否以这种方式链接到使用BackgroundWorker的好例子?

1 个答案:

答案 0 :(得分:33)

This文章清楚地解释了您需要的所有内容。

  

以下是使用BackgroundWorker的最低步骤:

     
      
  1. 实例化BackgroundWorker并处理DoWork事件。
  2.   
  3. 可选择使用对象参数调用RunWorkerAsync。
  4.         

    然后将其设置为动态。传递给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...
  }
}