![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
потоки
Res © (2008-06-09 03:05:00)Здравствуйте. Никак не могу понять, почему поток, после завершения кода не хочет сам разрушатся.
Запускаю так:
for x:=1 to n do
begin
tnew[x]:=th.Create(true);
tnew[x].FreeOnTerminate:= True;
end;
Сам поток
procedure th.Execute;
var
proxy,account,smail:string;
int:array[1..30] of integer;
x,n,z:integer;
test:boolean;
begin
end;
Palladin (2008-06-09 13:43:00) [1]
> Res (09.06.08 13:39) [4]
а тут прямо только все твои потоки считаются да? :) наивный ЧМ
они у тебя даже не запускаются...
Res (2008-06-09 13:39:00) [2]
> как определил?
function GetThreadCount():integer;
var
ThreadSnapshotHandle: THandle;
ThreadFound: Boolean;
ThreadEntry: tagTHREADENTRY32;
ProcessID: Cardinal;
ThreadCount:integer;
begin
ThreadCount:=-1;
ProcessID := GetCurrentProcessId;
ThreadSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
try
ThreadEntry.dwSize := SizeOf(ThreadEntry);
ThreadFound := Thread32First(ThreadSnapshotHandle, ThreadEntry);
if ThreadFound then
repeat
if ThreadEntry.th32OwnerProcessID = ProcessID then
ThreadCount:=ThreadCount+1;
until not Thread32Next(ThreadSnapshotHandle, ThreadEntry);
finally
CloseHandle(ThreadSnapshotHandle);
end;
Result:=ThreadCount;
end;
Palladin (2008-06-09 13:26:00) [3]зачем массив из экземпляров потоков'то заводить?
clickmaker (2008-06-09 13:20:00) [4]> после завершения кода не хочет сам разрушатся
как определил?
Джо (2008-06-09 03:38:00) [5]Во-первых, вы его вообще даже не стартуете (Где вызов Resume?).
Во-вторых, код метода Execute — кто его вообще съел?