Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
6-8963
Begemoth
2001-11-10 18:30
2002.02.04
Счетчик посещений Web-страницы


3-8762
Олег Лаукарт
2002-01-04 14:50
2002.02.04
указание значения-даты в запросе


3-8751
Olfi
2002-01-03 15:29
2002.02.04
Вопрос по TQuery...


1-8936
Yuraz
2002-01-03 08:49
2002.02.04
Люди, подскажите, как слева в Code Explorer сделать нумерацию строк программного кода?


1-8943
Mitrofan
2002-01-18 11:34
2002.02.04
Как програмно проскролировать RichEdit ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский