在运行时用C#更新UI?
我已经创建了一个C#Winforms应用程序 在这个应用程序中,我在ShowDialog模式下打开了一个表单,当我单击OK按钮时,它开始将联系人从GridView导入数据库的过程(行数可能高达15000) 问题是,当导入过程开始时,我会在循环中增加progressBar的值,但如果表单失去焦点,并且我再次将焦点设置到该表单,则进度条不会更新在运行时用C#更新UI?,c#,winforms,C#,Winforms,我已经创建了一个C#Winforms应用程序 在这个应用程序中,我在ShowDialog模式下打开了一个表单,当我单击OK按钮时,它开始将联系人从GridView导入数据库的过程(行数可能高达15000) 问题是,当导入过程开始时,我会在循环中增加progressBar的值,但如果表单失去焦点,并且我再次将焦点设置到该表单,则进度条不会更新 即使表单失去焦点,我如何更新进度条?时不时地使用,但您确实应该使用来防止这种情况发生。WinForms或WPF应用程序?不管怎么说,答案是——从一个单独的线
即使表单失去焦点,我如何更新进度条?时不时地使用,但您确实应该使用来防止这种情况发生。WinForms或WPF应用程序?不管怎么说,答案是——从一个单独的线程开始,有很多相同的问题——尝试使用BackgroundWorker进行搜索。看看[这里][1]。[1] :我想你是因为
Application.DoEvents
@username:IsApplication.DoEvents()
不好而被否决的吧?它会导致其他“无响应”的应用程序不时响应。@AlexEssilfie在这种情况下,有更好的方法更新UI。看一看@username:谢谢你的启发。在我编写代码的早期,我几乎在任何地方都会使用Application.DoEvents()
。谢天谢地,我做那件事从来没有遇到任何问题。我现在不自觉地使用了线程,但从未想过使用Application.DoEvents()
会有任何影响。