Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
6 / 6 / 4
Регистрация: 14.01.2016
Сообщений: 164

Последовательный порт в основном потоке

25.11.2024, 11:51. Показов 4381. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Приведите пожалуйста пример программы, в которой взаимодействие с COM-портом происходит в одном потоке с формой. В качестве примера достаточно организовать ожидание получения любого количества байт из порта. При этом требуется соблюдение событийно-ориентированного принципа. Предполагаю, что такое возможно только при использовании WinAPI-функции MsgWaitForMultipleObjects (MsgWaitForMultipleObjectsEx).
Спасибо. )
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2024, 11:51
Ответы с готовыми решениями:

GDI+. Почему в отдельном потоке картинки сохраняются как белые прямоугольники, а в основном потоке - всё Ок?
Всем привет, делаю функцию уменьшения картинок при помощи библиотеки GDI+, в отдельном потоке происходит уменьшение картинки и её...

Не рисуется форма в основном потоке
Всем привет. Есть долгая процедура - рекурсивно собирает все из каталогов FTP сервера. ListAllFiles Пытаюсь поставить окно...

Почему в Windows-11 программа не отправляет запросы в последовательный порт
Программа работает в Windows-7 и в Windows-10, как в 32-х, так и в 64-х разрядных версиях. Для проверки использую Virtual Serial Port...

23
6 / 6 / 4
Регистрация: 14.01.2016
Сообщений: 164
27.11.2024, 19:22  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Beltar Посмотреть сообщение
Я эту функцию не использовал.
Спасибо за ответ. В таком случае предполагаю что Вы помочь не сможете. Но это не означает что Ваше участие в данной теме бесполезно. )
Цитата Сообщение от Beltar Посмотреть сообщение
Вам же никто не мешает изучить исходники того же CPort.
Я достаточно хорошо знаком с данным компонентом и заглядывал в его внутренности.
Цитата Сообщение от Beltar Посмотреть сообщение
Уж тот, кто написал библиотеку на которой до сих пор весь дельфовый мир сидит, должен понимать, как сделать работу с портом правильнее всего.
Звучит логично. Но думаю это как раз тот случай, когда говорят об исключении из правил. Данный компонент также использует дополнительные потоки (по одному на каждый порт). Если в дальнейшем мне удастся решить данную задачу, то это будет являться подтверждением моего мнения.
Цитата Сообщение от Beltar Посмотреть сообщение
Компьютеры для людей, а не люди для компьютеров.
Это здесь не при чём. Если не заставлять систему "справляться с большим числом потоков" (ненужных), то от этого жизнь пользователя никак не ухудшится. И при этом у программиста будет меньше риск допустить ошибку.
0
 Аватар для Beltar
1071 / 512 / 41
Регистрация: 05.05.2022
Сообщений: 3,628
27.11.2024, 19:31
Вот когда передо мной встала задача переписывать на фиг систему учета выработки цеха, я, во избежание, выкинул свой колхоз с ненадежностью которого я в один момент до того столкнулся, и поставил CPort.

Собственно для этого библиотеки и придумали, чтобы повторно использовать уже отлаженное. Более того, человечество до сих пор использует Фортран, потому что на нем реализована и, главное, отлажена туева хуча разного матана. И выгоднее компилятор Фортрана оптимизировать, чем это все на C++ переписывать.

И это тоже компьютер для людей, программисты тоже люди. В противном случае до сих пор бы на Ассемблере писали.
0
6 / 6 / 4
Регистрация: 14.01.2016
Сообщений: 164
27.11.2024, 19:59  [ТС]
Beltar, думаю будет глупо не согласиться с Вашим последним сообщением. )
Но при этом, Вы же не будете отрицать, что нас окружает уж очень много совершенно неоптимизированного софта? И речь конечно не только о каких-то там потоках. Лично я не хотел бы быть автором таких программ. )

Добавлено через 14 минут
Beltar, и кстати заметьте: в Delphi до сих пор нет стандартного компонента по работе с COM-портом. Как думаете, почему? Не потому ли что авторы Delphi считают взаимодействие с портом достаточно простой задачей, которая сводится всего к двум-трём вызовам WinAPI-функций, поведение которых вполне понятно? То есть вполне возможно, что следует рассматривать данный компонент как что-то излишнее. Но, на цвет и вкус, как говорится... )
0
0 / 0 / 0
Регистрация: 27.11.2022
Сообщений: 2
15.04.2025, 10:13
MsgWaitForMultipleObjects
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.04.2025, 10:13

Запуск метода в основном потоке из другого
Есть код: class AnotherClass { public EventWaitHandle wh = new AutoResetEvent(false); private Int32...

Реализация своего таймера в основном потоке
Всем добрый день. Возникла такая задача, нужно реализовать таймер, но при этом не использовать многопоточность. То есть нужно сделать...

Как реализовать генерацию события в основном потоке?
Всем здравствуйте! У меня есть некий класс, в котором в отдельном потоке выполняется циклическая операция, после каждой с итераций...

Нотификация объекта в основном потоке из дочернего потока
Проблема такая: имеется объект типа А в котором создается объект типа Б (вложенный). В классе Б есть сокет по которому передаются или...

Получение значения переменного из асинхронного метода в основном потоке
Всем привет! Есть программа на сервере в нем я получаю данные с оборудования(допустим бытовой счётчик электроэнергии) и отправляю её...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru