我定义了个线程:
constructor TmyThread.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
Priority := TpNormal;
FreeOnTerminate:=true;
end;procedure TmyThread.Execute;
begin
showmessage('ok');
end;
然后按button执行它:
procedure TForm1.Button1Click(Sender: TObject);
begin
TmyThread.Create(false);
end;
多次按button,可对话框只弹出来一次,也就是说为什么这个线程只执行了一次,再按button这个线程就不执行了?
constructor TmyThread.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
Priority := TpNormal;
FreeOnTerminate:=true;
end;procedure TmyThread.Execute;
begin
showmessage('ok');
end;
然后按button执行它:
procedure TForm1.Button1Click(Sender: TObject);
begin
TmyThread.Create(false);
end;
多次按button,可对话框只弹出来一次,也就是说为什么这个线程只执行了一次,再按button这个线程就不执行了?
解决方案 »
- 关于注册表权限
- C#通过ODBC访问Delphi自带的数据库(paradox),不支持中文字段?
- 动态库兼容问题---- 为什么 delphi 2006 调用低版(delphi 6.0)的DLL时,会出错!!(急!!给高分!!)
- 如何设置DBGridEh某列具有下拉列表框?
- [小问题望指点]关于使用TudpSocket的收发问题2[此贴速结]
- 我用DBGridEh显示数据库查询结果,数据库为access,用SQL语句查询,怎么在DBGridEh中将0值或0.00显示为空格
- Delphi 2005 与ACESS的连接问题。
- 关于DBGrid,大家帮帮忙!
- 备份问题?在线等待!!!!
- 报这个错是为什么?--Couldn't perform the edit because another user changed the record。怎么解决?
- 关于一个程式向另一程式发送内容的问题(可以继续加分)
- 如何设置宽行打印纸
procedure TmyThread.Execute;
begin
Synchronize(Test);
end;procedure TmyThread.Test;
begin
ShowMessage('OK');
end;
testThread:=TmyThread.Create(false);
end;
begin
{ Place thread code here }
while true do
begin
if(Terminated) then exit;//检查线程的退出标志,如果为true,则线程停止
SynChronize(Update);
Suspend;
end;
end;
TmyThread.update;
begin
showmessage('asdf');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TmyThread.resume;
end;
靠,今天算是载了,我的一世英明呀……