Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Вниз

TThread как правильно запускать???? help!!!   Найти похожие ветки 

 
angel2000   (2003-10-23 19:45) [0]

Быть может повторюсь, но
вопрос для меня остался открытым - как мне
сделать так чтобы при кнопке старт у меня в TThread
запускался Execute а при нажатии другой кнопки останавливался????


 
Palladin   (2003-10-23 19:53) [1]

быть может заглянув в справку по поводу TThread ты надешь много интересных методов и свойств...


 
angel2000   (2003-10-23 19:55) [2]

в справку я уже смотрел - просто хотел все-таки более конкретно спросить


 
Palladin   (2003-10-23 20:14) [3]

Ну и что ты там высмотрел, расскажи нам.


 
panov   (2003-10-23 20:25) [4]

см. методы suspend и resume


 
angel2000   (2003-10-23 20:31) [5]

по факту - есть какая то предположим переменная (булевая)
предположи м через кнопку старт мы присвоили ей true -
как мне это параметр передать в поток чтобы потом через
if можно было бы обрабатывать поток?


 
Юрий Зотов   (2003-10-23 20:43) [6]

Вот пример схемы.

Создание:
FThread := TMyThread.Create(True);
FThread.FreeOnTerminate := True;

Запуск:
FThread.Resume;

Пауза:
FThread.Suspend;

Остановка:
with FThread do
begin
Terminate;
if Suspended then Resume
end;

Процедура потока:
procedure TMyThread.Execute;
begin
while not Terminated do
begin
...
end
end;

Если в Execute не требуется цикл, то в нем надо просто периодически проверять Terminated:
if Terminated then Exit;
Обычно такую проверку ставят между логически законченными операциями, в тех местах где поток можно безболезненно прервать.


 
zapped   (2003-10-23 20:47) [7]

2 [5]
по факту ;)) - перекрыть конструктор TThread своим и передавать какие угодно параметры :)), например, указатель на переменную, значение которой можно менять вне потока. Это в общем случае.
Также можно в потоке проверять (думается... раз булевая) значение глобальной переменной, или же добавить свойство к своему потоку, значение которого (свойства) можно менять в другом месте программы...



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

Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.054 c
14-8582
Rouse_
2003-10-15 21:39
2003.11.03
Ммм да. От алисы с косой челкой до моряка....


1-8489
ananimious
2003-10-23 22:00
2003.11.03
why?


1-8532
Dream
2003-10-23 15:03
2003.11.03
как вызвать процедуру или функцию которая находиться в другом


7-8697
__
2003-08-22 12:54
2003.11.03
BE-300, WinCE


8-8547
comintegrator
2003-06-27 19:00
2003.11.03
sound





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