您可以链接到使用BackgroundWorker的一个很好的例子,而不在窗体上放置一个组成部分? [英] Can you link to a good example of using BackgroundWorker without placing it on a form as a component?

查看:174
本文介绍了您可以链接到使用BackgroundWorker的一个很好的例子,而不在窗体上放置一个组成部分?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

解决方案

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

  

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

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

这则在运动中设置它。传递的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:

  1. Instantiate BackgroundWorker and handle the DoWork event.
  2. 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...
  }
}

这篇关于您可以链接到使用BackgroundWorker的一个很好的例子,而不在窗体上放置一个组成部分?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆