Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Опрос COM-порта и потоки   Найти похожие ветки 

 
Marser ©   (2005-01-17 12:03) [0]

Проводим в потоке.
Является ли обращение к визуальным компонентам из потока плохим тоном? Чем это чревато?

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


 
Fay ©   (2005-01-17 12:07) [1]

обращение к визуальным компонентам
Какое и к каким. М.б. обойдёшся SendMessage.


 
Marser ©   (2005-01-17 12:14) [2]

К стандартным, преимущественно - TListBox, TCheckButton, TLabel.

Всё-таки склоняюсь ко второму варианту. Гемора меньше...
Но всё же интересно, в чем именно заключается гипотетическая пагубность обращения по первому варианту?


 
Marser ©   (2005-01-17 12:15) [3]


> Fay ©   (17.01.05 12:07) [1]

TLabel сообщений не принимает, за отсутствием дескриптора...


 
Digitman ©   (2005-01-17 12:26) [4]


> в чем именно заключается гипотетическая пагубность обращения
> по первому варианту?


в том что рано или поздно произойдет несинхронизированное обращение со стороны более чем одного трэда к DC контрола

минимум чем ты рискуешь - получить исключение по невозможности рисования на канве, максимум - зависание и крах твоего процесса


 
Digitman ©   (2005-01-17 12:28) [5]


> Гемора меньше


Борланд в кач-ве "лекарства от гемора" предлагает метод Synchronize(), и в большинстве простых случаев нет никакого резона отказываться от его приема.


 
Marser ©   (2005-01-17 12:32) [6]


> в том что рано или поздно произойдет несинхронизированное
> обращение со стороны более чем одного трэда к DC контрола
>
> минимум чем ты рискуешь - получить исключение по невозможности
> рисования на канве, максимум - зависание и крах твоего процесса

Ясно. Спасибо.


> Борланд в кач-ве "лекарства от гемора" предлагает метод
> Synchronize(), и в большинстве простых случаев нет никакого
> резона отказываться от его приема.

Для потомков TThread. Я же покамест использовал голый API-ній вариант.


 
Marser ©   (2005-01-17 12:36) [7]

Хотя TThread, конечно, удобнее..


 
Digitman ©   (2005-01-17 13:01) [8]


> Marser ©   (17.01.05 12:36) [7]
> Хотя TThread, конечно, удобнее..


ну так а почему же не использовать его ?


 
tesseract   (2005-01-18 16:42) [9]

Я проще сделал - через CriticalSection - в основной поток по мере надобности через секция считывает данные из других потоков и отображает. Так можно и через TThread и через API


 
Marser ©   (2005-02-03 12:27) [10]


> Digitman ©   (17.01.05 13:01) [8]
>
> > Marser ©   (17.01.05 12:36) [7]
> > Хотя TThread, конечно, удобнее..
>
>
> ну так а почему же не использовать его ?

Успешно использовал. Весчь :-)

> tesseract   (18.01.05 16:42) [9]
> Я проще сделал - через CriticalSection

Не пробовал...



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

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
14-1108543241
WondeRu
2005-02-16 11:40
2005.03.20
Все статьи DelphiWorld в 20Мб!!! Качать!!!


14-1109533310
Piter
2005-02-27 22:41
2005.03.20
Gmail и аттачи


1-1110012098
Kolan
2005-03-05 11:41
2005.03.20
Работа с дин массивом


14-1109927208
DelphiN!
2005-03-04 12:06
2005.03.20
Странная проблемма при записи в таблицу DB FireBird


14-1109414052
07BB:080Dh
2005-02-26 13:34
2005.03.20
Пневматический автомат Калашникова