Форум: "Основная";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
ВнизРабота с потоками Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c