Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从不激发后台工作程序RunWorkerCompleted_C#_Winforms_Backgroundworker - Fatal编程技术网

C# 从不激发后台工作程序RunWorkerCompleted

C# 从不激发后台工作程序RunWorkerCompleted,c#,winforms,backgroundworker,C#,Winforms,Backgroundworker,使用以下代码,我的后台工作人员RunWorkerCompleted从未被调用,我也不知道为什么 void startWaitScan() { backgroundWorker1.RunWorkerAsync(); } void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { // do something here } void backgroundWorker1_RunWorkerCompleted(

使用以下代码,我的后台工作人员
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#重写代码时,我遇到了这个问题。

所有事件都正确连接了吗

 backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
 backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
                                                 backgroundWorker1_RunWorkerCompleted);

您是否已正确连接所有事件

 backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
 backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
                                                 backgroundWorker1_RunWorkerCompleted);


什么样的应用程序?这只适用于WinForms或WPF.C#Windows窗体应用程序。您在这里做什么?你确定它不会无限循环吗?在DoWork内设置断点并检查它是否确实存在。您的
BackgroundWorker
是如何声明的?您是否重新设置处理程序以完成此操作?backgroundWorker1.RunWorkerCompleted+=新的RunWorkerCompletedEventHandler(backgroundWorker1\U RunWorkerCompleted);什么样的应用程序?这只适用于WinForms或WPF.C#Windows窗体应用程序。您在这里做什么?你确定它不会无限循环吗?在DoWork内设置断点并检查它是否确实存在。您的
BackgroundWorker
是如何声明的?您是否重新设置处理程序以完成此操作?backgroundWorker1.RunWorkerCompleted+=新的RunWorkerCompletedEventHandler(backgroundWorker1\U RunWorkerCompleted);您可以在构造函数中执行此操作。通常它是由表单设计人员在InitializeComponent()方法中完成的谢谢,我知道这很愚蠢,非常感谢它所提供的帮助,如果允许的话,我会在5分钟内选择正确的答案。再次感谢这两行代码相当于java小程序的动作监听器和执行器?在本例中,动作监听器是backgroundWorker1\u DoWork和backgroundWorker1\u RunWorkerCompleted。Java执行器比构造函数中的执行器更多。通常它是由表单设计人员在InitializeComponent()方法中完成的谢谢,我知道这很愚蠢,非常感谢它所提供的帮助,如果允许的话,我会在5分钟内选择正确的答案。再次感谢这两行代码相当于java小程序的动作监听器和执行器?在本例中,动作监听器是backgroundWorker1\u DoWork和backgroundWorker1\u RunWorkerCompleted。Java执行器比