Главная страница
    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.004 c
1-8923
Valdemar
2002-01-16 12:36
2002.02.04
Как оставить приложение без окна выполнятся до окончания работы Windows?


1-8924
SGS
2002-01-17 18:20
2002.02.04
Как получить версию ActiveX?


1-8942
Serghei
2002-01-18 10:02
2002.02.04
Volume Serial Number для дискеты???


3-8769
div
2002-01-04 15:12
2002.02.04
где взять нормальный шрифт Fixedsys


1-8925
Dmitriy_R
2002-01-15 10:49
2002.02.04
Создание файла?





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