Вниз
Скачать: 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 вся ветка

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



Память: 0.46 MB
Время: 0.012 c
14-26724
Satirus
2003-05-22 12:27
2003.06.09
Корни уравнения третьей степени


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


9-26329
MRB_SPB
2003-01-04 11:26
2003.06.09
Преобразования


8-26611
Yuri_V
2003-02-26 14:02
2003.06.09
Инструмент


14-26692
MetalFan
2003-05-22 12:38
2003.06.09
Worm World Party&WinXP




   Наверх