我的一个线程的简单的程序,为什么在创建后挂起,第一次唤醒时可以执行Execute中的内容,但以后再唤醒时就不能执行Execute中的内容了。
{线程}
TTHtest=class(TTHread)
private protected public
constructor Create(CreateSuspended: Boolean);
procedure Execute;override;
end;
implementation
constructor TTHtest.Create(CreateSuspended: Boolean);
begin
inherited create(createsuspended);
freeonterminate:=false;
test:='';//全局变量test:string
end;procedure TTHtest.Execute;
begin
inherited;
test:=test+'aaa';//全局变量test:string
Suspend;
end;{创建调用}
procedure TFMainSock.Button10Click(Sender: TObject);
begin
thtest:=TTHtest.Create(true);//全局变量thtest:TTHtest
end;procedure TFMainSock.Button12Click(Sender: TObject);
begin
if thtest.Suspended then
thtest.Resume;//第一次执行Execute中的内容,以后不执行Execute中的内容
end;
{线程}
TTHtest=class(TTHread)
private protected public
constructor Create(CreateSuspended: Boolean);
procedure Execute;override;
end;
implementation
constructor TTHtest.Create(CreateSuspended: Boolean);
begin
inherited create(createsuspended);
freeonterminate:=false;
test:='';//全局变量test:string
end;procedure TTHtest.Execute;
begin
inherited;
test:=test+'aaa';//全局变量test:string
Suspend;
end;{创建调用}
procedure TFMainSock.Button10Click(Sender: TObject);
begin
thtest:=TTHtest.Create(true);//全局变量thtest:TTHtest
end;procedure TFMainSock.Button12Click(Sender: TObject);
begin
if thtest.Suspended then
thtest.Resume;//第一次执行Execute中的内容,以后不执行Execute中的内容
end;
解决方案 »
- 超级加花器1.8的使用问题
- dbgrid动态增加列实现百分比,在线等
- 请教delphi中如何把程序最小化时变为任务栏图标
- ADOtable错误,请帮忙。谢谢。(着急)
- 很简单的问题!!初学者请教!关于query的!
- delhi 开发远程桌面连接程序
- 如何给DBgrid动态地增加一个列!他的值为 改对应表中某两个字段的乘积!
- 我以前的一个QQ密码不记得了,注册时所填写的信息也记不清楚了,请问用什么工具可以把它取回来。
- windows下如何获取系统级按键消息?不用消息钩子。
- MySQL8数据库登录
- 怎样动态改变托盘的szTip(提示)有原代码再加100分决不食言!
- 请教在intraweb的使用iwdbbgrid的表格显示问题
begin
while not terminate do
begin
test:=test+'aaa';//全局变量test:string
Suspend;
end;
end;