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

Вниз

Работа с потоками   Найти похожие ветки 

 
Antoniz   (2002-01-16 10:00) [0]

Подскажите как сделать, чтобы приложение не ожидало конца выполнения процесса в потоке типа TThread, работающем в этом же приложении


 
Velocity   (2002-01-16 10:48) [1]

Странно... Вроде и не должно ожидать, для этого собссно потоки и выдуманы... Лучше кусок кода кинь, погляжу, может чего то я недопонял.


 
Digitman ©   (2002-01-16 10:50) [2]

Что означает - "не ожидало конца выполнения ..." ? Какая причина заставляет твое приложение ждать завершения доп.потока в дан.момент ?


 
McSimm ©   (2002-01-16 10:59) [3]

Наверное при выходе из программы?

В цикле выполнения потока должна быть проверка
if Terminated then Exit;
или что-то в этом роде


 
Velocity   (2002-01-16 11:06) [4]

Фу ема е. CreateThread возвращает идентификатор потока, который в дальнейшем можно использовать чтобы досрочно грохнуть этот самый поток. вот функцию которая это делает извиняюсь не помню, ломы смотреть. что то типа ExitThread... кажется.


 
Antoniz   (2002-01-16 11:08) [5]

Вот мой код

constructor TMyThread.Create;
begin
Inherited Create(true);
Priority:=tpHigher;
FreeOnTerminate:=true;
Resume;
end;

destructor TMyThread.Destroy;
begin
Free;
Inherited;
end;

procedure TMyThread.Cr;
begin
Screen.Cursor:=crHourGlass;
CreateStructure; //Моя процедура
Screen.Cursor:=crDefault;
end;

procedure TMyThread.Execute;
begin
synchronize(Cr);
Suspend;
end;

//Далее нажимаем на кнопку
procedure TfrmDepartaments.cmdAddClick(Sender: TObject);
begin
Application.CreateForm(TfrmProgress,frmProgress);
Progress.DoingTime:=10000;
frmProgress.Show;
frmProgress.Repaint;
timer1.Enabled:=true;
TMyThread.Create;
TMyThread.MethodName(@TMyThread.Execute);
timer1.Enabled:=false;
frmProgress.Close;
end;

Так вот пока поток выполняется таймер не работает, а нужно чтоб время счелкал


 
Алексей Петров ©   (2002-01-16 11:23) [6]

А поток у тебя и не выполняется :)
Он только посылает основному потоку сообщение "Выполни Cr" и ждет результата ...

Смотри функцию synchronize в исходниках.


 
Digitman ©   (2002-01-16 12:10) [7]

А вот это :

TMyThread.MethodName(@TMyThread.Execute);

зачем ?


 
NailS ©   (2002-01-16 12:24) [8]

А в деструкторе TMyThread у вас метод Free для какого объекта вызывается?



Страницы: 1 вся ветка

Текущий архив: 2002.02.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
1-8810
Анатолий
2002-01-18 03:49
2002.02.04
SaveDialog


1-8913
Cyber
2002-01-17 05:24
2002.02.04
Как сделать TMemo прозрачным?


1-8870
NY152
2002-01-15 09:59
2002.02.04
Подскажите, где поставить проверку...


1-8812
myportal
2002-01-19 10:00
2002.02.04
Как извлеч ресурс из программы в отдельный файл?


14-8990
fliz
2001-12-14 16:06
2002.02.04
чем ближе НГ-тем менее тут интересно.