while not Adoquery1.Eof do
begin
gjz:=adoquery1.fieldbyname('gjz').AsString;
thread:=tserch.create(gjz);
delay(800);
adoquery1.Next;
end;如何让这样创建的线程 暂停和 终止??
begin
gjz:=adoquery1.fieldbyname('gjz').AsString;
thread:=tserch.create(gjz);
delay(800);
adoquery1.Next;
end;如何让这样创建的线程 暂停和 终止??
解决方案 »
- tcpclient和tcpserver
- delphi总是提示用户sa登陆失败但是测试能连接上
- 分不是问题,大家来探讨,给点思路或是相关资料
- ReportBuilder生成的报表如何转出到Excel吗?
- 请问如何得到两个日期之间的天数?
- 提供c/s,b/s模式的资料者有分!
- 新手问题:如何在运行时将bitbtn的bitmap换为另外一个bitmap?谢谢
- 现在有些服务器是限制单个IP下载的,有没有办法骗过对方服务器我分别是两个以上的IP在同时下载
- 对李维的书(非电子版)的一点看法!(兼给CSDN的DELPHI大会放点“利市分”)
- 能不能提供个高效的压缩BMP格式的算法,有损的,帮帮忙?
- 请问Delphi 2007 有没有MAC OS 风格的界面控件?
- QQ中的这些功能用的什么控件呢?
继续:thread.Resume;
停止:thread.Terminate; thread.WaitFor;
估计是你不会用。gjz:=adoquery1.fieldbyname('gjz').AsString;
thread:=tserch.create(gjz);
thread.Suspend; //这行语句执行之后,如果线程还会继续执行的话,那就见鬼了
如果只创建以个线程,,直接用thread.Suspend; 就可以了,这个我知道!!但是我的程序不是这样的,,就是说,不知道 可能会创建几个线程,,因为每过800毫秒创建一个线程,,,然后每个线程需要过几秒才能运行完毕,运行完毕后就自动销毁,,这样的循环创建 线程 该如何挂起,和唤醒呢???大家明白我的意思吗?
2 建立一个全局 TList list;
3 在线程入口加入
cs.Enter;
try
list.Add(self);
4 在线程的出口加入
finally
list.remove(self);
end;这样你就有了一个线程的列表,要知道线程是否挂起,调用他的suspend属性就可以了,例如 if TThread(list[0]).suspend then ......
2 建立一个全局 TList list;
3 在线程入口加入
cs.Enter;
try
list.Add(self);
finally
cs.Leave;
end;
4 在线程的出口加入
cs.Enter;
try
list.Remove(self);
finally
cs.Leave;
end; 这样你就有了一个线程的列表,要知道线程是否挂起,调用他的suspend属性就可以了,例如 if TThread(list[0]).suspend then ......