已实现用线程控制进度条,希望在线程事件完成后,关闭程序。
在form1的oncreate事件中,写有一下代码
if WaitForSingleObject(hProcess, INFINITE) = WAIT_OBJECT_0 then
application.Terminate;
监控线程是否完成,并在完成后关闭程序,
但是造成线程工作期间窗体上其他组件不能使用!(按钮都点不上)
应该在哪检测线程????
求助~~~
在form1的oncreate事件中,写有一下代码
if WaitForSingleObject(hProcess, INFINITE) = WAIT_OBJECT_0 then
application.Terminate;
监控线程是否完成,并在完成后关闭程序,
但是造成线程工作期间窗体上其他组件不能使用!(按钮都点不上)
应该在哪检测线程????
求助~~~
if WaitForSingleObject(hProcess, INFINITE) = WAIT_OBJECT_0 then
application.Terminate;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure OnThreadTerminated(Sender: TObject);
public
{ Public declarations }
end; TSleepThread = class(TThread)
private
protected
procedure Execute; override;
public end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
t: TSleepThread;
begin
t := TSleepThread.Create(True);
t.OnTerminate := OnThreadTerminated;
t.Resume;
end;{ TSleepThread }procedure TSleepThread.Execute;
begin
Sleep(5000);
end;procedure TForm1.OnThreadTerminated(Sender: TObject);
begin
Application.Terminate;
end;end.
begin
if WaitForSingleObject(hProcess, 100) = WAIT_OBJECT_0 then
begin
application.Terminate;
Break;
end
else
application.ProcessMessages;
end;