Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
Вниз
Помогите разобраться с потоком Найти похожие ветки
← →
Man (2003-04-08 17:42) [0]Привет всем!Такая вот проблемка:в программе использую поток, опис.в классе,произв. от TThread.В проге 3 пимпочки - запуск,пауза,остановка потока. Процедура остановки потока такова:
With MyThread Do Begin
If Suspended Then Resume;
Terminate;
WaitFor;
FreeAndNil(MyThread);
End;
Всё ли здесь написано корректно:
отрабатывает иногда корректно,иногда в цикле WaitFor зависает(внутри Execute делается проверка на Terminated в цикле).
Зараннее всем большое спасибо.
← →
panov (2003-04-08 18:27) [1]А кода самого потока нет?
constructor Thread.Create;
begin
inherited Create(True);
FreeOnterminate := True;
...
Resume;
end;
...
with MyThread do begin
if Suspended then Resume;
Terminate;
End;
MyThread.WaitFor;
MyThread := nil;
← →
panov (2003-04-08 18:28) [2]WaitFor можно и в блок with внести...
← →
Man (2003-04-08 19:52) [3]Если ставить FreeOnterminate := True,Тогда при обращении к WaitFor объект м.б. уже разрушен - возникнет ошибка.
>panov © (08.04.03 18:28)-не понял?
← →
panov (2003-04-08 20:44) [4]Тут непонятно, зачем тебе WaitFor?
Тебе код возврата нужен?
Для потока определи OnTerminate в основном потоке и там делай все, что хочешь...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c