我有一个程序,一旦用户点击按钮,就会在后台运行相当长的操作。我已经实现了一个进度条,但如果窗口被触摸或移动,那么它会变灰并说(不重复)。一切仍然有效,当操作完成后,程序恢复功能。 (但用户不会知道这一点:(
关于防止这种情况发生的最佳方法的任何想法 我在Visual Studio 2010中使用vb.net
答案 0 :(得分:3)
我猜想一些线程的使用会有所帮助。您可以将实际操作发送到一个新线程,该线程与负责正在运行的应用程序的线程不同。
答案 1 :(得分:2)
使用BackgroundWorker或线程池在不同的线程上运行任务,同时保持UI(用户界面)的响应。
另外,请查看这本优秀的免费电子书(在C#中我很害怕),了解有关线程的所有信息:
答案 2 :(得分:1)
将处理从主UI线程转移到后台工作线程是最好的解决方案,但是为了让窗口响应而进行的短期修复可能是在处理代码中的适当位置使用Application.DoEvents
但请注意,如果用户仍然可以对您的表单执行操作,则可以创建一些re-entrancy problems。