【发布时间】:2014-04-20 14:29:00
【问题描述】:
我想运行我的Thread 然后运行应用程序指令。为什么要在Sleep 后面跑呢?
我有一个TQuery(它有很多记录和慢速获取)而不是Sleep,当Open、Thread 在OpenTQuery 之前没有运行。
ShowMessage 和 Sleep 用于测试。
有什么解决办法?
TCustomThread = class(TThread)
public
procedure Execute; override;
procedure doProc;
end;
.
.
.
procedure TCustomThread.Execute;
begin
Synchronize(doProc);
end;
procedure TCustomThread.doProc;
begin
ShowMessage('Thread');
end;
.
.
.
procedure TForm1.Button1Click(Sender: TObject);
var
thrd : TCustomThread;
begin
thrd := TCustomThread.Create(True);
thrd.Resume;
Sleep(3000);
ShowMessage('Form');
end;
【问题讨论】:
-
我知道英语不是您的第一语言,但您的问题仍然不清楚。您必须尝试对其进行编辑并明确您的要求。
-
你问为什么你的“ShowMessage('Thread');”直到 Button1Click 处理程序中的代码完成后才会执行?
-
在询问为什么它没有按计划工作之前,请详细了解如何创建线程。
-
是的,我的第一个语言不是英语!谢谢
-
我在主窗体忙时询问工作线程。
标签: multithreading delphi synchronize