Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.21;
Скачать: CL | DM;

Вниз

Помогите разобраться с потоком   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
4-67613
_toltec
2003-02-17 14:48
2003.04.21
Функция из чужого процесса


9-67066
SI-riuss
2002-11-14 19:07
2003.04.21
Ну че, нашел кто-нить литературу по GLScene? :))


1-67293
pok
2003-04-11 17:09
2003.04.21
TStringList - как проверить создан или нет?


3-67144
Mak
2003-03-31 11:10
2003.04.21
Как создать отчёт на базе перекрёстного запроса?


14-67439
Agent[007]
2003-04-03 13:16
2003.04.21
Вот ка бывает...