我有一个需要加载到内存中的大型查询。此查询大约需要 30 秒才能打开。它在应用程序启动后立即加载,仅加载一次。在此期间,应用程序挂起。我需要做的是在 30 秒内更新进度条。我试图创建一个新线程来更新进度条,但它只会在打开查询后更新。谁能指出一个简单的方法来做到这一点?
我创建了一个线程类:
type
TMyThread = class(TThread)
private
fLowerLimit: Integer;
fUpperLimit: Integer;
我正在创建线程类的一个实例:
CountingThread := TMyThread.Create(0, 300, True);
CountingThread.Resume;
//
SplashDlg.Show;
在线程内我只是更新进度条:
procedure TMyThread.UpdateMainThread;
begin
SplashDlg.ProgressBar1.Position:= SplashDlg.ProgressBar1.Position+1;
MyDebug('UpdateMainThread:'+ IntToStr(SplashDlg.ProgressBar1.Position));
end;
查询打开时线程挂起。