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

Вниз

Синхронизация потоков   Найти похожие ветки 

 
Armature_Current   (2009-07-31 13:32) [0]

Всем доброго времени суток!
Начну с преамбулы. Есть внешнее устройство, общение с которым происходит по RS232(Только Rx, Tx и Gnd). Это устройство может слать данные как небольшим пакетом (байты синхронизации плюс небольшая информационная часть, байтов 10, допустим посылает свой Id), так и большим непрерывным пакетом (допустим приложение на компьютере прорисовывает осциллограммы оцифрованных данных с микроконтроллера).

А теперь вопрос:
Есть различные способы отправки данных из доп. потока:
1. Synchronize()
2. PostMessage()
3. SendMessage()
Так вот какой из них лучше подойдет для реализации заявленных задач, если второй грузит основной поток при непрерывном приеме, третий теряет данные в доп. потоке, а про первый ничего плохого сказать не могу, так как вроде пока работает нормально, но опыта у меня мало, вдруг есть какие подводные камни?


 
Anatoly Podgoretsky ©   (2009-07-31 14:01) [1]

> Armature_Current  (31.07.2009 13:32:00)  [0]

4. сообщать об необходимости перерисовки основному потоку (PostMessage) и продолжать заниматься своей работой, естественно прорисовка должна быть быстрее.


 
Сергей М. ©   (2009-07-31 15:03) [2]

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

Разница между Synchronize и SendMessage при использовании на Win32 практически не ощутима - оба вызова будут дожидаться фактической обработки целевым потоком указанного метода или сообщения.

Использование SendMessage вызовет немалые трудности при портировании кода на другие целевые платформы, отличные от Windows.


 
Вариант   (2009-08-03 10:34) [3]


> Armature_Current   (31.07.09 13:32)  


> так и большим непрерывным пакетом (допустим приложение на
> компьютере прорисовывает осциллограммы оцифрованных данных
> с микроконтроллера).


Не делать этого в риал тайм, если действительно большие объемы с приличной скоростью оцифровки. Накапливать если надо в буфере (ах), сохранять на диске и т.п. Смотреть потом уже подготовленные (сохраненные) данные.  Тогда наверное все  равно что ты выберешь из трех тобой заявленных способов.



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
2-1302979988
Aleks1995
2011-04-16 22:53
2011.07.24
Трудности с QuickReport


15-1302368658
Димка На
2011-04-09 21:04
2011.07.24
ИЕ 9


15-1301903703
oldmanAPOOERE
2011-04-04 11:55
2011.07.24
Сегодня - день Интернета.


2-1303311831
>|<
2011-04-20 19:03
2011.07.24
Quick Report: дочернее окно отчета не становится Maximized


2-1302199698
Xalexo
2011-04-07 22:08
2011.07.24
Копирование файла по маске