如何重新运行BackgroundWorker

发布于 2024-10-06 23:36:10 字数 158 浏览 3 评论 0原文

我需要在 DoWork 期间捕获错误,如果错误属于某种类型,请重新运行相同的 BachgroundWorker。已尝试取消它并在 Completed 事件期间调用 RunWorkerAsync(),但没有成功(出现异常,表明我的后台工作对象已取消)。

I need to catch error during DoWork and if the error is of some type- re-run the same BachgroundWorker. Already tried to cancel it and call RunWorkerAsync() during Completed event, but no luck(exception appears saying that my backgroundworker object was canceled).

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

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

发布评论

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

评论(1

你丑哭了我 2024-10-13 23:36:10

我猜测 Bgw 仍处于错误/已取消状态,直到完成事件完成。

几个选项:

  • 重新启动 DoWork 内部的逻辑
  • ,从已完成的事件开始另一个 Bgw。

Bgw 本身并不昂贵,因此重用特定实例没有什么意义。线程来自ThreadPool。

I would guess that the Bgw remains in the Error/Canceled state until the Completed event has finished.

A few options:

  • restart the logic inside DoWork
  • start another Bgw from the completed event.

A Bgw itself is not expensive so there is little point in reusing a specific instance. The threads come from the ThreadPool.

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