C#WPF应用程序最终崩溃
我有一个简单的程序。它的工作是将文件从A移动到B(一个美化的bat文件) 我遇到的问题是它崩溃了。。。最后 App.xaml.cs: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"
<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已经完成,并查看它是否仍然崩溃。如果没有,那么您就发现了问题。如果您的主线程在后台任务完成之前退出,并且如果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)。同样的问题。不完全是“答案”,但它确实让我想到拉后台工作人员(和其他垃圾),直到我找到了我需要拉的正确路线。