T
toxing
Unregistered / Unconfirmed
GUEST, unregistred user!
我想使用一个线程作为服务,平时挂起,需要时由主线程启动(resume)。
使用tthread1:=thread.create(true)创建它。其中
procedure tthread1.Execute;
begin
while not Terminateddo
begin
synchronize(writememo);
suspend;
end;
end;
(其中,writememo是我作为测试用的往主form的memo中写的过程)
在主form中,我使用下述代码在一个过程中调用
while not tthread1.Suspended do
begin
sleep(100);
end;
tthread1.Resume;
若只调用一次该过程一切正常,但若顺序调用两次以上,则程序在
while not tthread1.Suspended do
处挂死,就是说线程运行一次后一直没停止,memo中只有第二次调用时留下的写记录。
也就是说第一次运行的线程根本没写记录,难道是它一直在执行?
我到底该如何写这个处理呢?
使用tthread1:=thread.create(true)创建它。其中
procedure tthread1.Execute;
begin
while not Terminateddo
begin
synchronize(writememo);
suspend;
end;
end;
(其中,writememo是我作为测试用的往主form的memo中写的过程)
在主form中,我使用下述代码在一个过程中调用
while not tthread1.Suspended do
begin
sleep(100);
end;
tthread1.Resume;
若只调用一次该过程一切正常,但若顺序调用两次以上,则程序在
while not tthread1.Suspended do
处挂死,就是说线程运行一次后一直没停止,memo中只有第二次调用时留下的写记录。
也就是说第一次运行的线程根本没写记录,难道是它一直在执行?
我到底该如何写这个处理呢?