Текущий архив: 2005.09.25;
Скачать: CL | DM;
Вниз
Как завершать поток Найти похожие ветки
← →
alex-drob © (2005-08-15 15:27) [0]К примеру есть код:
procedure TMyThread.Execute;
begin
while not Terminated do
begin
...
end
end;
При выполненииMyThread.Terminate
поток перестанет работать. АMyThread.Free
нужно вызывать?
И ещё, если написать так:procedure TMyThread.Execute;
begin
while (i<100) do
begin
inc(i);
...
end
end;
То поток завершиться правельно?
← →
Leonid Troyanovsky © (2005-08-15 15:41) [1]
> alex-drob © (15.08.05 15:27)
> При выполнении MyThread.Terminate поток перестанет работать.
Поток перестанет работать, когда он выйдет из функции потока,
т.е., в данном случае, после проверки Terminated.
> А MyThread.Free нужно вызывать?
Зависит от установки FreeOnTerminated.
> while (i<100) do
> То поток завершиться правельно?
Плохо, что i - глобальная.
А правильнее было б while not Terminated and (i < 100),
бо тело цикла может быть и громоздким.
--
Regards, LVT.
← →
alex-drob © (2005-08-15 15:49) [2]
> while not Terminated and (i < 100),
Я так и хотел написать, это я привёл к примеру.
Спасибо!
Страницы: 1 вся ветка
Текущий архив: 2005.09.25;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.038 c