С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для sluge
0 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 31

Одновременная работа двух потоков с COM портом

23.01.2011, 21:13. Показов 2629. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я пишу приложение для работы с сом портом, у меня в приложении два потока, один главный, а второй сидит на WaitCommEvent и ждет поступления данных в порт. Как только данные приходят, второй поток дает команду первому вызвать ReadFile для считывания данных. Так вот проблема в том что второй поток посылает сигнал и потом снова ждет новых данных на вызове WaitCommEven, а первый поток читает данные, вернее начинает читать но вызов ReadFile навечно зависает, так как видимо оба потока используют один и тот же разделямый ресурс. У кого нибудь есть идеи, как это можно разрулить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2011, 21:13
Ответы с готовыми решениями:

Одновременная рисовка из двух потоков
Доброго времени суток, подскажите пожалуйста. Как можно использовать отрисовку из двух потоков. При компиляции кода ругается. В момент...

Одновременная работа потоков
Добрый день, уважаемые. Сразу перейду к делу, ниже находится код многопоточья, но дело в том, что он работает по очереди. Было бы интересно...

Одновременная работа потоков
В многопоточности новичок. Но в Qt с первого взгляда показалось всё довольно просто. Задача: Приложение для работы с платой...

3
59 / 59 / 2
Регистрация: 22.01.2011
Сообщений: 187
24.01.2011, 11:51
sluge, толком подсказать не могу, с COM портами не сталкивался.
но читал статью тут, там все хорощо разжовано. может поможет.
0
 Аватар для s-kvv
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
24.01.2011, 13:03
Как то писал под компорт на WinApi
Если все правильно помню, то это не разделяемый ресурс. т.е. пока открыт порт повторно его не откроешь
Асинхронно читал данные, создал очередь полученных данных, блокировки на запись/чтение
Другой поток читал данные из очереди
0
 Аватар для sergiy1627
0 / 0 / 0
Регистрация: 13.02.2011
Сообщений: 5
13.02.2011, 22:31
Добавлено через 3 минуты
Цитата Сообщение от s-kvv Посмотреть сообщение
Как то писал под компорт на WinApi
Если все правильно помню, то это не разделяемый ресурс. т.е. пока открыт порт повторно его не откроешь
Асинхронно читал данные, создал очередь полученных данных, блокировки на запись/чтение
Другой поток читал данные из очереди
HANDLE CreateFile(
LPCTSTR lpFileName, // имя файла
DWORD dwDesiredAccess, // режим доступа
DWORD dwShareMode, // совместный доступ
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // SD (дескр. защиты)
DWORD dwCreationDisposition, // как действовать
DWORD dwFlagsAndAttributes, // атрибуты файла
HANDLE hTemplateFile // дескр.шаблона файла
);

V кaчестве dwShareMode : FILE_SHARE_READ|FILE_SHARE_WRITE , т.о. paзpешaем последуюшие опеpaции откpития поpтa для зaписи и чтения . Uстpойство использует двa отдельных буфеpa для чтения и зaписи , тaк что пpоблем возникнуть не должно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.02.2011, 22:31
Помогаю со студенческими работами здесь

Одновременная работа потоков
Доброго времени суток :) Возникла небольшая проблема по поводу одновременной работы двух потоков (основного UI и вторичного). При...

Одновременная работа двух ProgressBar'ов.
Всем добрый день! Никак не могу найти решение задачи или хотя бы подсказку. В общем есть ProgressBar1, который запускается кнопкой...

Одновременная работа двух приводов
как сделать так чтобы работало два привода сразу. дело в то м что я как то даво купил себе двд привод, вместо своего сд, поставил его как...

одновременная работа в двух сетях
Здравствуйте! Есть комп на работе, подключен к сети компании (интернет через прокси сервер). Есть WIFI интернет (хочу купить usb WIFI...

Одновременная работа в двух сетях
Здравствуйте! Есть комп на работе, подключен к сети компании (интернет через прокси сервер). Есть WIFI интернет (хочу купить usb WIFI...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru