Вниз
Скачать: CL | DM;

результат выполнения потока   Найти похожие ветки 

 
juice   (2005-02-18 13:52) [0]

Каким образом лучше всего получать результат выполнения потока ?


 
Reindeer Moss Eater ©   (2005-02-18 13:56) [1]

Зависит от того, что из себя представляет этот результат.


 
Fay ©   (2005-02-18 13:59) [2]

Лучше банковским переводом


 
juice   (2005-02-18 14:05) [3]

Да пусть будет integer. Хранить результат как свойство самого обьекта потока - плохо. т.к. разные бывают случаи с уничтожением. Если поток будет заносить результат в чужой обьект - совсем не красиво (чем я сейчас и пользуюсь). Как делают профи? :)


 
Reindeer Moss Eater ©   (2005-02-18 14:06) [4]

Посылают сообщение какому-нибудь окну. Например форме.


 
Digitman ©   (2005-02-18 14:09) [5]


> разные бывают случаи с уничтожением


и самый дурной из них - FreeOnTerminate


 
MBo ©   (2005-02-18 14:10) [6]

ReturnValue
WaitFor
OnTerminate


 
Alexander Panov ©   (2005-02-18 14:16) [7]

juice   (18.02.05 14:05) [3]


Вариантов масса, и все как раз зависит от конкретного случая.
Приводи пример, тебе ответят.


 
juice   (2005-02-18 15:29) [8]


> и самый дурной из них - FreeOnTerminate

Почему так? Удобно все таки!


 
Alexander Panov ©   (2005-02-18 15:35) [9]

juice   (18.02.05 15:29) [8]
Почему так? Удобно все таки!


При автоматическом уничтожени объекта TThread(FreeOnTerminate=True) ты не сможешь получить после окончания вычислений ReturnValue.


 
Digitman ©   (2005-02-18 15:57) [10]


> juice   (18.02.05 15:29) [8]
> Почему так? Удобно все таки!


завершая в произв.момент времени приложение (ExitProcess) в надежде что треды якобы успеют сами разрушить свои объекты и корректнго освободить тем самым занятые ими ресурсы, ты не учитываешь одно - ExitProcess просто снимет с выполнения и уничтожит трэды процесса (как ОС-объекты) , ВНЕ зависимости, успели ли они на тот момент завершить "свои дела" или не успели ..

когда же ты ЯВНО даешь трэду команду "закруглиться" и ЯВНО же ждешь фактического его завершения, после чего ЯВНО же уничтожаешь его VCL-экземпляр. все происходит ожидаемо. по-божески, корректно, в соответствии с ожидаемой же тобой логикой освобождения ресурсов



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
3-1107420777
denis24
2005-02-03 11:52
2005.03.06
обьединение полей


14-1108500588
TUser
2005-02-15 23:49
2005.03.06
Посты Панова


10-1084796970
VK220
2004-05-17 16:29
2005.03.06
Здравствуйте! Если функция _AddRef вызывается при любом обращении


14-1108700994
begin...end
2005-02-18 07:29
2005.03.06
С Днём рождения! 18 февраля


1-1109075955
Nad89
2005-02-22 15:39
2005.03.06
Кликнуть по ссылке в TWebBrowser




   Наверх