100分有关线程数组创建和终止的高难问题!Delphi高手请进!
tttk 2004-07-29 01:00:48 线程定义如下:
TNPThreadClass = class of TNPThread;线程类定义
TNPThread = class(TThread);父线程定义
TThread1 = class(TNPThread);线程1定义
TThread2 = class(TNPThread);线程2定义
现在数组A类型是TThread1,数组B类型是TThread2,其中各有一定数量的线程。
Arr1: array of TThread1;
Arr2: array of TThread2;
现在想写一个公共函数,要求判断数组中的线程是否超时,如果超时,则强行终止该线程,并为数组变量创建一个新的进程。
function CheckThread(var NPThread: TNPThread);
begin
if 超时 then
begin
TerminateThread(NPThread.ThreadID, 0);
NPThread := TNPThread.create(...);
NPThread.Resume;
...
end;
...
end;
调用:CheckThread(TNPThread(Arr1[0]))
不知以上方法是否有效?您有什么建议?