【发布时间】:2014-06-05 01:53:01
【问题描述】:
使用以下代码,我的后台工作人员 RunWorkerCompleted 从未被调用,我不知道为什么。
void startWaitScan()
{
backgroundWorker1.RunWorkerAsync();
}
void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
// do something here
}
void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Console.WriteLine("BackgroundWorker1_RunWorkerCompleted");
if (!stopAsync)
{
backgroundWorker1.RunWorkerAsync();
}
}
我的目标是让后台工作人员连续运行,我曾在 .NET 中工作,但是当我现在用 C# 重写代码时,我遇到了这个问题。
【问题讨论】:
-
究竟是什么样的App?这仅适用于 WinForms 或 WPF。
-
C# Windows 窗体应用程序
-
你是什么
//Do something here?你确定它不是无限循环吗?在 DoWork 中设置断点并检查它是否真正退出。 -
您的
BackgroundWorker是如何声明的? -
您是否正在注册处理程序以完成? backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
标签: c# winforms backgroundworker