![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Опрос COM-порта и потоки [D4, D5, D6, D7, Win95/98, Win2k, WinXP]
Marser © (2005-01-17 12:03:00)Проводим в потоке.
Является ли обращение к визуальным компонентам из потока плохим тоном? Чем это чревато?
В принципе, можно результат опроса сохранять в некие переменные, которые следует проверять по таймеру...
Marser (2005-02-03 12:27:00) [1]
> Digitman © (17.01.05 13:01) [8]
>
> > Marser © (17.01.05 12:36) [7]
> > Хотя TThread, конечно, удобнее..
>
>
> ну так а почему же не использовать его ?
Успешно использовал. Весчь :-)
> tesseract (18.01.05 16:42) [9]
> Я проще сделал - через CriticalSection
Не пробовал...
tesseract (2005-01-18 16:42:00) [2]Я проще сделал - через CriticalSection - в основной поток по мере надобности через секция считывает данные из других потоков и отображает. Так можно и через TThread и через API
Digitman (2005-01-17 13:01:00) [3]
> Marser © (17.01.05 12:36) [7]
> Хотя TThread, конечно, удобнее..
ну так а почему же не использовать его ?
Marser (2005-01-17 12:36:00) [4]Хотя TThread, конечно, удобнее..
Marser (2005-01-17 12:32:00) [5]
> в том что рано или поздно произойдет несинхронизированное
> обращение со стороны более чем одного трэда к DC контрола
>
> минимум чем ты рискуешь - получить исключение по невозможности
> рисования на канве, максимум - зависание и крах твоего процесса
Ясно. Спасибо.
> Борланд в кач-ве "лекарства от гемора" предлагает метод
> Synchronize(), и в большинстве простых случаев нет никакого
> резона отказываться от его приема.
Для потомков TThread. Я же покамест использовал голый API-ній вариант.
Digitman (2005-01-17 12:28:00) [6]
> Гемора меньше
Борланд в кач-ве "лекарства от гемора" предлагает метод Synchronize(), и в большинстве простых случаев нет никакого резона отказываться от его приема.
Digitman (2005-01-17 12:26:00) [7]
> в чем именно заключается гипотетическая пагубность обращения
> по первому варианту?
в том что рано или поздно произойдет несинхронизированное обращение со стороны более чем одного трэда к DC контрола
минимум чем ты рискуешь - получить исключение по невозможности рисования на канве, максимум - зависание и крах твоего процесса
Marser (2005-01-17 12:15:00) [8]
> Fay © (17.01.05 12:07) [1]
TLabel сообщений не принимает, за отсутствием дескриптора...
Marser (2005-01-17 12:14:00) [9]К стандартным, преимущественно - TListBox, TCheckButton, TLabel.
Всё-таки склоняюсь ко второму варианту. Гемора меньше...
Но всё же интересно, в чем именно заключается гипотетическая пагубность обращения по первому варианту?
Fay (2005-01-17 12:07:00) [10]обращение к визуальным компонентам
Какое и к каким. М.б. обойдёшся SendMessage.