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

Iva*_*van 10 .net c# multithreading backgroundworker

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

Cha*_*thJ 33

文章解释了你需要的所有东西.

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

  1. 实例化BackgroundWorker并处理DoWork事件.
  2. 调用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...
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 很棒的链接,但适当的引号和代码答案更好. (7认同)