您能否链接到使用BackgroundWorker 的一个很好的示例,而不将其作为组件放置在表单上?

发布于 2024-11-16 01:15:50 字数 158 浏览 2 评论 0原文

我记得很多年前(2005年)我在代码中使用了BackgroundWorker,但没有使用可视化组件,但我不记得是如何使用的(不幸的是,我很健忘,在停止使用它后很快就忘记了一切) 。也许我正在扩展BackgroundWorker 类。您能链接到以这种方式使用BackgroundWorker 的好示例吗?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫九 2024-11-23 01:15:50

这篇文章清楚地解释了您需要的一切。

以下是使用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...
  }
}

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...
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文