C#WPF应用程序最终崩溃

C#WPF应用程序最终崩溃,c#,wpf,visual-studio-2010,C#,Wpf,Visual Studio 2010,我有一个简单的程序。它的工作是将文件从A移动到B(一个美化的bat文件) 我遇到的问题是它崩溃了。。。最后 App.xaml.cs: <Application x:Class="app.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

我有一个简单的程序。它的工作是将文件从A移动到B(一个美化的bat文件)

我遇到的问题是它崩溃了。。。最后

App.xaml.cs:

<Application x:Class="app.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             xmlns:properties="clr-namespace:app.Properties" 
             StartupUri="Views\MainWindow.xaml">
    <Application.Resources>
        <properties:Settings x:Key="Settings" />
    </Application.Resources>
</Application>
简单的身体。假设我没有传递任何命令行参数,它应该只是自动运行。通过参数,它将运行WPF

它从应用程序设置中填充的xmlDoc中提取设置。然后,它通过Parms类传递这些设置。然后它要么运行,要么popu

在运行时,我在OnStartup中尝试了一个try/catch,但没有出现错误,并且在OnStarup块之后出现了一个NullReferenceException错误


编辑1:如果我的反应不够快(对不耐烦的人来说是的,因为他们不耐烦而投了反对票),那就很抱歉了,但是我已经删除了后台工作人员部分,因为我现在没有使用它。最后我仍然得到相同的空错误。此处更新的代码反映了BackgroundWorker的删除

编辑2:删除App.cs的GUI方面(因为后台工作程序和GUI是辅助atm)。所以这个项目,从现在开始,很简单

  • 装载
  • 从app.config中提取xml位置
  • 从XmlDoc加载parm类
  • 成功移动文件
  • 具有NullReferenceException的崩溃是未处理的错误。我可以在OnStart的“finish”(完成)中注释掉所有内容和错误

如果您的主线程在后台任务完成之前退出,并且如果BackgroundWorker创建了一个线程(我想是的,但不是100%确定),那么当您的UI线程退出时,后台线程将被主动关闭


尝试保持主线程运行,直到您确定BackgroundWorker已经完成,并查看它是否仍然崩溃。如果没有,那么您就发现了问题。

如果您的主线程在后台任务完成之前退出,并且如果BackgroundWorker创建了一个线程(我认为是的,但不是100%确定),那么当您的UI线程退出时,后台线程将被主动关闭

尝试保持主线程运行,直到您确定BackgroundWorker已经完成,并查看它是否仍然崩溃。如果没有,则说明您找到了问题。

我用这个问题(或一个非常类似的问题)来设置我的WPF命令行。问题一定是在我重新构建应用程序时出现的,并且没有删除

StartupUri="Views\MainWindow.xaml"
这意味着在进程运行后,它将尝试访问一个未初始化的对象,并给出一个null异常错误

至少我确信这就是问题所在。删除StartupUri可以解决这个问题(尽管现在我有另一个错误,我可能会发布一个新问题)。

我用这个问题(或一个非常类似的问题)来设置我的WPF命令行。问题一定是在我重新构建应用程序时出现的,并且没有删除

StartupUri="Views\MainWindow.xaml"
这意味着在进程运行后,它将尝试访问一个未初始化的对象,并给出一个null异常错误


至少我确信这就是问题所在。删除StartupUri会消除这个问题(尽管现在我有另一个错误,我可能会发布一个新问题)。

请发布完整的代码MoveFileParams的作用是什么?我问这个问题的原因是,我猜您正在剥离BackgroundWorker线程,但是您的方法立即返回,但是行为看起来是异步的?-1因为没有跟随其他用户添加的注释而不是跟随注释?正在整理代码。。。我在工作,你不能期望30秒的响应时间…更新的问题和代码。。。删除了后台工作程序(因为我想确定这是否是问题所在),最后出现了空错误。请发布完整代码MoveFileParams的作用是什么?我问这个问题的原因是,我猜您正在剥离BackgroundWorker线程,但是您的方法立即返回,但是行为看起来是异步的?-1因为没有跟随其他用户添加的注释而不是跟随注释?正在整理代码。。。我在工作,你不能期望30秒的响应时间…更新的问题和代码。。。删除了后台工作程序(因为我想确保它是/不是问题)最后出现空错误的相同问题。我删除了后台工作程序(因为我处理的是自动过程,而不是gui atm)。同样的问题。不完全是“答案”,但它确实让我想到了拉后台工作程序(和其他垃圾),直到我找到了需要拉的正确线路。我已经删除了后台工作程序(因为我在处理自动过程,而不是gui atm)。同样的问题。不完全是“答案”,但它确实让我想到拉后台工作人员(和其他垃圾),直到我找到了我需要拉的正确路线。