我有一个程序可以选择创建还原点...
我的问题是,当你点击它时,程序会锁定,直到它完成创建还原点。
我在程序中放了一个单独的表单,它有一个我下载的Marquee Progress Bar Control,所以想法就是......
用户点击“创建还原点”
frmRestore.show 创建还原点时,Marquee Progress Bar会一直打开 还原点已完成 frmRestore.hide
问题是,当您单击创建还原点时,表单显示并且程序刚刚锁定,创建还原点时,表单会再次隐藏。
使用后台工作人员可以解决此问题吗?说实话,我不完全确定它是做什么的,我用控件捣乱,但似乎找不到任何有用的东西。
谢谢
答案 0 :(得分:1)
您需要将还原过程放在单独的线程中。如果您的程序不是多线程的,那么它将工作线性并锁定,直到它完成它正在执行的任务。
答案 1 :(得分:1)
程序被锁定,因为你在主线程上正在做一些密集的事情。
在GUI应用程序中如下所示:
//做一些事情
//回应系统并重绘gui
//做一些事情
//回应系统并重绘gui
当你阻止“//做一些事情”时,程序将无法响应并重绘gui,直到完成某些事情。
您需要做的是使用辅助线程或使用像您所说的后台工作程序。一个线程就像,你可以在不阻塞系统或GUI的情况下完成任务。
希望这会有所帮助
答案 2 :(得分:0)
我从来没有认真地使用VB,但我认为相同的概念适用于Qt(开始大声谈论Qt在这里更好)。
我不确定VB是使用GUI线程还是只使用一个统一的线程,但我认为你的问题是GUI线程正在执行长的非gui操作,导致它“锁定”。当它“锁定”时,程序正在等待任务完成,因此不允许您与之交互。
使用单独的线程......