我想创建一个线程列表并更改每个时间间隔的运行线程数(取决于某些条件),这是不可能的,array of THandle
因为 - 如你所知 - 这里我需要在创建线程之前修复数组的长度,这就是我进行的方式:
procedure MainThread.execute;
var
HandleThread : THandle;
ListOfThreadsH : TList;
begin
ListOfThreadsH := TList.create;
while (condition) do
begin
HandleThread := TMyThread.Create( parameter1,..,parametern).Handle;
ListOfThreadsH.add (HandleThread);
ThreadCount := ThreadCount + 1;
end;
waitForMultipleObjects(ThreadCount, pointer(ListOfThreadsH), True, INFINITE);
end;
但是,我对此有一些问题:
: 中不兼容的类型指针和基数
ListOfThreadsH.add (HandleThread);
,我可以理解为什么我会得到这个,但真的不知道如何解决它。以这种方式等待线程是否正确?因为据我所知
ListOfThreadsH
类型必须是array of THandle
. 如果没有,在这种情况下如何等待线程?
如果这不是增加运行线程数的正确方法,那么如何进行?感谢您的回复。