C# Backgroundworker线程在离开页面上显示错误消息
我目前正在VS2010 C#中开发一个向导。倒数第二页是带有进度条的进度页。正在进行的工作需要很长时间。因此,我创建了一个Backgroundworker线程,并在DowWork中执行冗长的操作。我使用ProgressChanged事件更新进度条。冗长流程的代码位于单独的actions类中。我从DoWork事件调用该类中的静态方法。在actions类中引发异常 一切正常。也就是说,DoWork事件成功地从my actions类调用了静态方法,ProgressChanged事件成功地更新了进度条,RunWorkerCompleted成功地捕获了异常 但是,当我从“进度”页面移到“完成”页面时,会再次显示异常错误消息,而不会显示任何代码(即没有MessageBox.Show) 我在这个阶段没有包含任何代码,因为它与MSDN示例相同 我知道这与工作代码在单独的类中或者我调用静态函数无关。我已经将代码移动到进度页本身中(如MSDN示例中所示),并使用私有方法而不是静态方法,但我仍然看到此错误消息 但是,如果将对action类的DoWork调用包含在try-catch块中,则不会显示错误消息。但是,RunWorkerCompleted事件不会捕获异常。此外,在DoWorker中放置一个try-catch-around呼叫不是推荐的方法。但有趣的是,这解决了问题C# Backgroundworker线程在离开页面上显示错误消息,c#,multithreading,C#,Multithreading,我目前正在VS2010 C#中开发一个向导。倒数第二页是带有进度条的进度页。正在进行的工作需要很长时间。因此,我创建了一个Backgroundworker线程,并在DowWork中执行冗长的操作。我使用ProgressChanged事件更新进度条。冗长流程的代码位于单独的actions类中。我从DoWork事件调用该类中的静态方法。在actions类中引发异常 一切正常。也就是说,DoWork事件成功地从my actions类调用了静态方法,ProgressChanged事件成功地更新了进度条,
如果有人能对此有所了解,我将不胜感激。从action类抛出的异常将在调用堆栈中冒泡,在本例中是到BackgroundOker的DoWork方法,然后再向上冒泡。由于您没有try/catch,这将导致异常冒泡出现,而VS调试器将向您显示它
“…与MSDN示例相同”请给我们链接,以便更容易找到。请发布DowWork的代码(大纲)并确保已完成。如果格式不太正确,请道歉-我是新来的!