Я пытаюсь отобразить активность, указывающую наложение (вращающийся круг точек) во время длительной операции в моем приложении.Для этого я создал прозрачную форму без полей с TImage и Imagelist, которые я пытался обновить в потоке в то время, когда основной поток занят.
Проблема, с которой я столкнулся, заключается в том, что длительная операция непохоже, меня "перебивают" мои темы.Функция thread.Execute зацикливается несколько раз, прежде чем начинается длительная операция, а затем снова, когда операция завершается.
Кажется, что поток по какой-то причине истощен.Я пытался поднять его приоритет, но не смог увидеть никакого эффекта.
Есть ли у кого-нибудь похожий опыт, которым можно поделиться, или, может быть, даже решение?
Исходный код потокафункция
procedure TIndicatorThread.Execute;
begin
inherited;
while(not Terminated) do
begin
fDlg.fCurindex := (fDlg.fCurindex+1) mod 12;
Synchronize(UpdateImage);
Application.ProcessMessages;
sleep(80);
end;
Synchronize(fDlg.close);
Synchronize(fDlg.Free);
end;
основная резьба
begin
[...]
myThread := TIndicatorThread.Create;
mythread.Resume;
Init_SomeUIRelatedstuff;
Application.ProcessMessages;
DoLengthyOperation;
mythread.Terminate;