Главная страница
    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
1-8897
dimonf
2002-01-15 14:40
2002.02.04
График.


1-8829
GleB
2002-01-20 11:12
2002.02.04
Размер исполняемого файла


1-8835
tavwizard
2002-01-19 16:49
2002.02.04
add-in для Delphi


14-9001
Awex
2001-12-10 16:07
2002.02.04
Какое пиво лучше ?


3-8800
Fareader
2002-01-03 16:11
2002.02.04
Как сделать прогу с IBX пошустрее?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский