在线程中如何运用adoquery?(100分)

  • 主题发起人 主题发起人 没理头号
  • 开始时间 开始时间

没理头号

Unregistered / Unconfirmed
GUEST, unregistred user!
在线程中如何运用adoquery?
我在线程中已加了,
Coinitialize(nil);
CoUninitialize;
可是我用Terminate方法就是结束不了线程是怎么回事?
注:
我线程中有些地方用到在线程外创建的aqoquery,是不是这个有问提?
 
我知道为什么了,
因为用Terminate方法好象只是把Terminated设成true而已,
并没有马上结束线程,
因为我线程执行过程这样的
while not Terminated do
begin
for i:=0 to 1000 do
begin
...
//do something
...
end;
end;

好比假如当Terminated变成true时,do something仍在执行
这时窗体的很多东西都在释放,这样的话,do something就会出错,
但看了TThread的帮助,好象没有什么立即结束线程并释放内存的方法,
是不是还有什么别的方法?
注:
我现在的解决方法是在
for i:=0 to 1000 do
begin
if(Terminated)then
break;//解决
...
//do something
...
end;
但这样好象不是很好,如有嵌套for就很麻烦,有没有老大有好方法啊?
 
不会吧?没人吗?
 
thread.free
 
楼上的,呵呵,有这么简丹吗?
请试试自己的想法后再给人家意见
 
不可能,Terminate没问题
你贴出你的源码看看
 
to 老人家:
源码在这里
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1373446
 
接受答案了.
 
后退
顶部