С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/30: Рейтинг темы: голосов - 30, средняя оценка - 4.53
1 / 1 / 1
Регистрация: 08.04.2014
Сообщений: 31
1

Синхронные и асинхронные сообщения!

24.04.2014, 01:21. Показов 5576. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Объясните максимально доходчиво, простыми словами, как это работает... синхронные- это обычные без очереди вроде бы ясно, а асинхронные не могу понять, "пощупать"...как они приходят непосредственно окну. Это всё равно, что растолкать очередь людей за хлебом??
0
IT_Exp
Эксперт
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
Блог
24.04.2014, 01:21
Ответы с готовыми решениями:

Асинхронные сокеты Windows
Здравствуйте, форумчане! Интересует вопрос как можно синхронно отправить сообщение через...

Асинхронные сокеты , ф-я WSAAsyncSelect и ее применение
Доброго времени суток , возникла проблема с асинхронностью сокетов , а именно функцией...

Синхронные/асинхронные операции
Подскажите примерный паттерн для приостановки скажем бесконечного цикла, который уже запущен каким...

Литература. Синхронные и асинхронные автоматы
Поделитесь пожалуйста литературой. Необходимо написать программу работы синхронного автомата, и еще...

4
Заблокирован
24.04.2014, 11:10 2
Смотря о каких сообщениях ты говоришь. Если ты про SendMessage и PostMessage, то SendMessage - синхронное так сказать, а PostMessage - асинхронное, если конечно можно так выразиться.
Фишка в том, что когда ты вызываешь функцию SendMessage, поток, из контекста которого ты вызвал эту функцию, будет ждать её возврата, в то время как PostMessage возвращает управление мгновенно.
Что же они делают? Да просто шлют Windows-ные сообщения окну, окно в свою очередь принимает их в функции - обработчике сообщений (евент хэндлер, кол бэк, он же WndProc обычно в хэлоу ворлд :-) ).
Так вот, SendMessage посылает сообщение и не возвращает управление до тех пор, пока WndProc Так сказать его не примет и не обработает, а PostMessage просто ставит сообщение в очередь и сражу же возвращает управление.

По поводу очереди людей за хлебом .... Ну...
Смари, ты идёшь с мамой.... не, лучше с папой, папа около магазина открыл баночку пивка, прикурил сигарету и не стал заходить с тобой в магазин за хлебом, сказав тебе - на сынок лавэ, метнись пока за хлебом в этот магаз, а я тебя выходе подожду, чтоб ты мне хлеб и сдачу отдал, как выйдешь, т.к. я тебе, малолетний, не доверяю и ты можешь со сдачей метнуться куда нибуть без меня В общем ты вышел из магазина и отдал папаше сдачу и хлеб - всё вы пошли дальше, дамой наверное. (это пример SendMessage).
А теперь тот же самый пример, но папаша открыв баночку пивка и прикурив сигарету, сказал тебе - метнись сынок в этот магаз за хлебом, я пойду домой пока, занесёшь потом его домой. Это как раз пример PostMessage, то есть он отправил тебя магаз и пошёл дальше по своим делам (поставил сообщение в очередь).
Надеюсь понятную сказку придумал
2
1 / 1 / 1
Регистрация: 08.04.2014
Сообщений: 31
24.04.2014, 14:58  [ТС] 3
newbie666, ты случайно не перепутал, а то у меня в книге(Петзольд) написано так
Часто асинхронные сообщения являются результатом вызова определенных функцийWindows или
непосредственным результатом вызова функции SendMessage. (Кроме этого, сообщения могут помещаться в
очередь сообщений посредством вызова функции PostMessage.)
А кроме функций пост и сенд в каких случаях ещё приходят асинхронные сообщения?
0
Заблокирован
24.04.2014, 15:17 4
Цитата Сообщение от garjo_099 Посмотреть сообщение
ты случайно не перепутал
нет, я ничего не перепутал, я не знаю, что в твоей книге понимается под асинхронными сообщениями. Сообщения Windoows, аля WM_USER, WM_TIMER И тд - это просто переменные, хранящие свой идентификатор, посылать в Windows сообщения на сколько я помню можно только посредствам SendMessage, PostMessage, PostThreadMessage и SendDlgItemMessage ...
0
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
24.04.2014, 16:45 5
Чисто по моему:
Синхронность это когда, к примеру с потоками(createThread) создали 3 потока, дали им задания в очерёдности и в той же очерёдности они их вернули. Но на деле обстоит по другому, например второй поток может вернуть решение раньше первого(т.е. имеется в виду первый - этот именно тот кому первую задачу дали), т.е. в этом случае синхронности нет...

newbie666, класс
0
24.04.2014, 16:45
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
24.04.2014, 16:45
Помогаю со студенческими работами здесь

Клиент-сервер. Синхронные и асинхронные сокеты
Здравствуйте, в чем разница между синхронными и асинхронными сокетами? слышал что с асинхронным...

Синхронные ScrollBox'ы
На форме лежат скроллбоксы, как сделать чтобы при прокрутке одного (вертикально, горизонтально)...

Синхронные двигатели
В политехе на лабораторных работах по электрическим машинам запускали синхронные движки с числом...

Синхронные запросы
Добрый вечер! Кто знает как "убить" синхронные запросы? У меня в консоли выходит сообщение что у...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Блоги программистов
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­хронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru