Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712

Синхронно или асинхронно?

19.10.2016, 14:27. Показов 1334. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. Настроился я тут познать асинхронную работу с COM портом, но немного подумав задался вопросом: а оно надо, когда заказчик подгоняет к завершению заказа, а там конь не валялся.
Заказана программа для работы с прибором, который подключен к компьютеру через COM порт. Прибор всегда является ведомым, то есть присылает данные в COM порт только когда получит запрос от компьютера. Возникает вопрос, зачем использовать асинхронную передачу и прием? Ведь можно синхронно отправить запрос и так же синхронно получить ответ. Или я не прав?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.10.2016, 14:27
Ответы с готовыми решениями:

Как вызываются слоты? Синхронно или асинхронно?
Здравствуйте, товарищи! Возник такой вопрос: Например, у меня в файле есть 2 слота... Они будут вызываться всегда синхронно? Т.е....

Mssql - как асинхронно узнать о добавлении или удалении записи
Уважаемые Гуру! Подскажите, как можно асинхронно узнать о факте добавления или удаления записи. Есть задача написать сервис , который...

Почему код выполняется синхронно?
Всем привет! Это мое первое сообщение на форме, первая попытка подружиться с .net и соответственно первый блин :) Подскажите пожалуйста,...

3
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
20.10.2016, 06:54
Можно, здесь по месту надо смотреть, так как у нас на работе с com-портом асинхронная передача данных, но мне с локальным интернет портом было неудобно писать программу с асинхронной передачей, так как данные которые прилетели в порт какое то время могут находится в переменных, но при синхронной передаче есть свои минусы, если будет нужно разделить пакет данных и запулить частями, то допустим при передаче данных на скорости 0,01 они могут не отработать и пакет объединится, у нас на 0,09 боле менее вроде пока все ок, пользователь не успевает нажимать кнопку быстрее)
0
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
20.10.2016, 07:52  [ТС]
Dias606, я разрабатываю программу для работы с устройством, которое не предусматривает отправку ему пакетов частями. Сейчас я пока уверен, что мне надо делать синхронную работу по двум причинам. Первая причина это то, что работа с устройством идет всегда по одному алгоритму: отправил запрос - получил ответ. Наоборот не будет никогда. Вторая причина это более сложная для меня реализация асинхронной работы, для которой необходимы более широкие знания, которых у меня пока нет и на получение которых надо время, которого у меня тоже нет. Но если есть веские причины для реализации асинхронной работы, то прошу всех компетентных специалистов прокомментировать этот пост, ибо измучился уже с вопросом синхронно или асинхронно...
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.10.2016, 12:53
Цитата Сообщение от d7d1cd Посмотреть сообщение
рибор всегда является ведомым, то есть присылает данные в COM порт только когда получит запрос от компьютера. Возникает вопрос, зачем использовать асинхронную передачу и прием? Ведь можно синхронно отправить запрос и так же синхронно получить ответ. Или я не прав?
Читаем Wiki:
Прием и передача данных для последовательного порта может выполнятся в синхронном или асинхронном режимах. Асинхронный режим позволяет реализовать работу по событиям, в то время как синхронный лишен этой возможности, но является более простым в реализации. Для работы в синхронном режиме, порт должен быть открыт следующим образом: ...
Недостатком этого способа является то, что вызывая функцию ReadFile(), мы не знаем есть ли данные для чтения. Можно циклически проверять их наличие, но это приводит к дополнительным расходам времени ЦП. Поэтому на практике часто удобней использовать асинхронный режим. Для этого при вызове функции CreateFile() параметр dwFlagsAndAttributes должен быть равен FILE_FLAG_OVERLAPPED.
https://ru.wikibooks.org/wiki/... 1.8B.D1.85

Так что по сути других нормальных вариантов как кроме как использовать OVERLAPPED нет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.10.2016, 12:53
Помогаю со студенческими работами здесь

Функции не хотят работать синхронно
Приветствую! У меня написаны две функции. Эта функция делает запрос в БД и возвращает массив полученных данных через return. ...

Слои в группе перемещаются синхронно
у меня после добавления слоев в группу если я двигаю один двигается и другой так ведь не должно быть

Использование асинхронной функции синхронно
Добрый день. Да, я знаю что так делать не желательно, но уже очень нужно. У меня на примете есть несколько вариантов, да и вообще хотелось...

Почему async/await выполняются синхронно?
Добрый день, Гуру! Немного запутался в логике работы async/await, очень прошу просветить..) Есть несколько асинхронных методов,...

Как синхронно прокручивать два скроллбокса?
Можно ли отловить какое-то событие прокручивания TScrollBox?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru