C# WPF应用程序UI因运行时异常而挂起

C# WPF应用程序UI因运行时异常而挂起,c#,wpf,caliburn.micro,C#,Wpf,Caliburn.micro,我正在开发一个企业级WPF应用程序,这个应用程序中有很多模块。在处理长时间运行的操作时,如果出现任何意外异常,UI线程将不响应。下面我已经提到了我的示例场景,请检查一下 按钮点击: 等待长时间运行操作() 那么,如果在任何长时间运行的操作中出现任何异常,我们如何克服UI挂起呢。我尝试过任务。运行,后台工作人员,但没有运气 请找到示例应用程序下载链接 谢谢。您没有提供应用程序实际挂起的代码。那个catch块里面是什么?我已经在问题中提供了一个示例应用程序下载链接,请您检查一下。@dev ssc,我

我正在开发一个企业级WPF应用程序,这个应用程序中有很多模块。在处理长时间运行的操作时,如果出现任何意外异常,UI线程将不响应。下面我已经提到了我的示例场景,请检查一下

按钮点击: 等待长时间运行操作()

那么,如果在任何长时间运行的操作中出现任何异常,我们如何克服UI挂起呢。我尝试过任务。运行,后台工作人员,但没有运气

请找到示例应用程序下载链接


谢谢。

您没有提供应用程序实际挂起的代码。那个catch块里面是什么?我已经在问题中提供了一个示例应用程序下载链接,请您检查一下。@dev ssc,我不会下载您的代码来查看问题。。。我不明白为什么你不能在catch块中发布代码。。。想一想,如果你是一个浏览网站的用户,在喝咖啡帮助别人的时候,你会坐在那里下载代码还是转到下一个问题?@JohnChris,我没有在问题本身中发布代码,而是附上了完整的解决方案,我附加的原因是,在运行我附加的示例之前,我们无法看到ui挂起。下载示例后,如果您将循环次数设置为100次以上,我们可以观察ui挂起。下载并运行后,它的工作方式与预期一致。UI已更新,我可以在UI更新和进度环按预期工作的同时移动shell窗口。
public async Task LongRunningOpertaion()
{
try
{
//some processing will be done here
}
catch(Exception e)
{
//here ui hanging
}
}