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

Вниз

Потоки   Найти похожие ветки 

 
Nucl ©   (2003-05-29 14:57) [0]

Я заметил что некоторые вещи, которые я обычно реализую на таймере, некоторые гуру заменяют потоками. Объясните, где здесь собака зарыта?
Из последнего, что попадалось: замена таймера потоком, чтение из COM порта в потоке.


 
clickmaker ©   (2003-05-29 15:22) [1]

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


 
Digitman ©   (2003-05-29 15:26) [2]


> Nucl


"собака зарыта" в механизме сообщений Windows, при котором сообщения, адресованные окнам, созданным конкретным кодовым потоком, выбираются из очереди/диспетчеризуются/обрабатываются этим код.потоком последовательно.

В то же время код.потоки работают "параллельно", выполняя каждый свою задачу: возможно - принимая и обрабатывая последовательно адресованные каждому из них сообщения, возможно - просто выполняя какие-то длительные и "тяжелые", линейные или циклические вычисления.


 
Nucl ©   (2003-05-29 15:31) [3]

Да, но здесь же возникает проблема синхронизации потоков.
А виндовые сообщения можно "подтолкнуть" вызвав application.ProcessMessages.


 
Serginio   (2003-05-29 15:35) [4]

Таймеры прерывают работу приложения. И каждое прерывание обрабатывается в главном потоке. При использовании таймера все вычисления происходят ассинхронно. Некоторые даже вставляют таймеры в поток. Мне больше нравятся потоки со слипами намного меньших по времени нужного, но все зависит от реализации.


 
Digitman ©   (2003-05-29 15:43) [5]


> Nucl


> возникает проблема синхронизации потоков


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


> А виндовые сообщения можно "подтолкнуть" вызвав application.ProcessMessages.
>


Не "виндовые" (все они виндовые !), а сообщения, адресованные основному код.потоку и окнам, им созданным.

А упомянутое "толкание" ведь кроме быстрого решения проблемы имеет и ряд немалых недостатков !



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

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

Наверх




Память: 0.48 MB
Время: 0.021 c
3-26370
Сергей Суровцев
2003-05-16 08:52
2003.06.09
Обработка локальной таблицы в ОЗУ


1-26508
Lin
2003-05-29 14:05
2003.06.09
Как в StringGreed поместить CheckBox?


14-26664
Мыш
2003-05-24 02:48
2003.06.09
Жуть какой флейм :)


1-26537
kamkad3e
2003-05-25 20:35
2003.06.09
Как посчитать количество слов в вордовском файле


11-26420
Vitalon
2002-09-01 18:27
2003.06.09
Помогите разобраться с TKOLRichEdit