C# Winform应用程序冻结

C# Winform应用程序冻结,c#,winforms,C#,Winforms,我是开发Winform应用程序的新手(使用C#.NET) 当有太多操作在后面运行时,我的应用程序将冻结,有时甚至显示“无响应”,特别是当它涉及到大量数据读写到数据库时。但应用程序并没有崩溃,它只是冻结,直到所有代码都完成执行 我的问题是,如何“解冻”应用程序。例如,用户仍然可以单击“取消”按钮终止正在运行的任何操作,或显示进度条或类似的内容?您的应用程序冻结,因为它只有一个线程,负责绘制UI和执行其他“繁重”操作(读取/写入数据库)。当线程忙于数据库时,它无法刷新UI。您应该在后台线程中执行“重

我是开发Winform应用程序的新手(使用C#.NET)

当有太多操作在后面运行时,我的应用程序将冻结,有时甚至显示“无响应”,特别是当它涉及到大量数据读写到数据库时。但应用程序并没有崩溃,它只是冻结,直到所有代码都完成执行


我的问题是,如何“解冻”应用程序。例如,用户仍然可以单击“取消”按钮终止正在运行的任何操作,或显示进度条或类似的内容?

您的应用程序冻结,因为它只有一个线程,负责绘制UI和执行其他“繁重”操作(读取/写入数据库)。当线程忙于数据库时,它无法刷新UI。您应该在后台线程中执行“重”操作。因此,主线程将只负责刷新UI,并且它将始终准备好这样做。使用组件在后台线程上运行一些操作


建议阅读:

你可以看看后台工作人员来阻止你的程序冻结。是的,后台工作人员是所有这些问题的解决方案。他们支持取消、更新进度(用于进度条),并且不会冻结你的应用。同意。看看BackgroundWorker和async/await。了解异步的一般情况。