procedure Delay1(mS :integer);
var
beginTick ,endTick :Integer;
begin
beginTick :=GetTickCount;
while True do
begin
Application.ProcessMessages;
end
Tick :=GetTickCount;
sleep(1);
if (endTick - beginTick)>mS then Break;
end;
end;
然后 在按钮2事件之后,停止3个线程,
为了保证线程正常退出 我在 多处代码段 添加了
if Terminated then
begin
break;
end;
我的调用临界资源代码是
EnterCriticalSection(Myps); //进入临界区
try
proone(@get.z);
if Terminated then
begin
break;
end;
Delay1(15);
finally
LeaveCriticalSection(Myps); //离开临界区
end;