您可以链接到使用BackgroundWorker的一个很好的例子,而不在窗体上放置一个组成部分?很好、您可以、窗体、组成部分

2023-09-02 10:31:16 作者:- 我的微笑,渐渐过期

我记得很多年前(2005年),我在我的code。使用BackgroundWorker的不使用可视化组件,但我怎么也想不起(不幸的是我很健忘,很快就忘记了一切之后,我停止使用)。也许我正在伸出的BackgroundWorker类。您可以链接到使用的BackgroundWorker这样的一个很好的例子?

解决方案

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

  

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

        实例化的BackgroundWorker并处理DoWork的事件。   在通话的RunWorkerAsync,可选的对象参数。         

这则在运动中设置它。传递的RunWorkerAsync任何参数将被转发到DoWork的的事件处理程序,通过事件参数的参数属性。这里有一个例子:

 类节目
{
  静态BackgroundWorker的_bw =新的BackgroundWorker();

  静态无效的主要()
  {
    _bw.DoWork + = bw_DoWork;
    _bw.RunWorkerAsync(告工人);
    到Console.ReadLine();
  }

  静态无效bw_DoWork(对象发件人,DoWorkEventArgs E)
  {
    //这就是所谓的工作线程上
    Console.WriteLine(e.Argument); //写告工人
    //执行耗时的任务...
  }
}
 
智能财务时代的财务机器人应用及思考

I can remember that many years ago (in 2005) I was using BackgroundWorker in my code without using a visual component for it, but I can't remember how (unfortunately I am very forgetful and forget everything very soon after I stop using it). Perhaps I was extending BackgroundWorker class. Can you link to a good example of using BackgroundWorker this way?

解决方案

This article explains everything you need clearly.

Here are the minimum steps in using BackgroundWorker:

Instantiate BackgroundWorker and handle the DoWork event. Call RunWorkerAsync, optionally with an object argument.

This then sets it in motion. Any argument passed to RunWorkerAsync will be forwarded to DoWork’s event handler, via the event argument’s Argument property. Here’s an example:

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...
  }
}