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

Вниз

Проблемы с TThread.   Найти похожие ветки 

 
SergP ©   (2005-07-03 20:18) [0]

Провел єксперимент с таким кодом:


...
type
 TMyThread = class(TThread)
 public
   procedure Execute; override;
 end;

...
procedure TMyThread.Execute;
var
 i:integer;
begin
 FreeOnTerminate:=true;
 WaitWin.ProgressBar.Max:=200000;
 for i:=1 to 200000 do WaitWin.ProgressBar.Position:=i;
end;
...


Появилось несколько вопросов:
1. Когда я мышью держу окно за заголовок несколько секунд, затем отпускаю то за это время по прогресбару видно что поток не выполнялся.
Почему так?

2. Устанавливаю FreeOnTerminate:=true; но почему-то после завершения потока я могу обращаться к свойствам и методам объекта Thread:TMyThread и исключений не возникает. Почему? Ведь он по идее должен уничтожаться.

3. Как правильно прервать работу потока досрочно не проверяя в Execute свойство Terminated?


 
Eraser ©   (2005-07-03 20:23) [1]

SergP ©   (03.07.05 20:18)

К визуальным компонентам VCL можно обращаться только из основного потока или использовать метод Synchronize (см. справку).

Как правильно прервать работу потока досрочно не проверяя в Execute свойство Terminated?

Если правильно, то никак.


 
Eraser ©   (2005-07-03 20:23) [2]

SergP ©   (03.07.05 20:18)

Что значит "досрочно"?


 
SergP ©   (2005-07-03 20:26) [3]


>  [2] Eraser ©   (03.07.05 20:23)
> SergP ©   (03.07.05 20:18)
>
> Что значит "досрочно"?


Ну может неправильно выразился. Имеется ввиду Прервать работу моего потока из основного потока.


 
Eraser ©   (2005-07-03 20:28) [4]

SergP ©   (03.07.05 20:26) [3]

Корректно - никак, не корректно - TerminateThread.


 
Eraser ©   (2005-07-03 20:29) [5]

Вернее никак, если не считать передачи в поток переменной, где указывается, что он может завершиться, т.е. например terminated.



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

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

Наверх




Память: 0.45 MB
Время: 0.041 c
5-1090879946
Victor!
2004-07-27 02:12
2005.07.18
Компонент могргает при перетаскивании


3-1118127607
td
2005-06-07 11:00
2005.07.18
Пароль при подключении к Ораклу


3-1117880359
java73
2005-06-04 14:19
2005.07.18
Отображение русских симоволов из mysql


1-1120267488
МП
2005-07-02 05:24
2005.07.18
как программно копировать выделенный текст, из другой программы


14-1118909237
Gorlum
2005-06-16 12:07
2005.07.18
Помогите найти ответы





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