为什么线程终止不了????(22分)

  • 主题发起人 主题发起人 lcl_003
  • 开始时间 开始时间
L

lcl_003

Unregistered / Unconfirmed
GUEST, unregistred user!
线程里
procedure MyThread.Execute;
begin
freeOnTerminate := true;
do
something....
end;

创建
mythread.Create(false);
但是想停止线程死活不行:(
mythread.Destroy;
mythread.Terminate;
mythread.Suspend;
都不行:(
 
由于你用了 freeOnTerminate := true;
线程在运行完了一直自动结束了,
 
MyThread.TerminateThread
 
加了freeOnTerminate := true;
是不是只有线程执行完了才能结束?但是我是在线程死循环的和另外的机器通讯,那是不是
要用TerminateThread?
 
楼上的,你不会做个退出标记?强行退出线程会造成内存泄露。
 
哦,老张我这么写TerminateThread(mythread.Handle,0);的确是报地址错误了:(
我怎么加标志?
 
在循环里可以这么写
while not Terminateddo
begin
//dosomethings;
end;
 
我的线程里本来就是这么写的啊
while( not terminated)do
begin
do
somethings;
end;
 
检查逻辑有没有问题。是否有组塞
 
mythread.Create(true);
 

do
somethings
作完才可以
 
迟了,如张无忌所说,用while not terminateddo
sometings
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
454
import
I
后退
顶部