1 / 1 / 1
Регистрация: 08.04.2014
Сообщений: 31
|
|
1 | |
Синхронные и асинхронные сообщения!24.04.2014, 01:21. Показов 5576. Ответов 4
Метки нет (Все метки)
Объясните максимально доходчиво, простыми словами, как это работает... синхронные- это обычные без очереди вроде бы ясно, а асинхронные не могу понять, "пощупать"...как они приходят непосредственно окну. Это всё равно, что растолкать очередь людей за хлебом??
0
|
24.04.2014, 01:21 | |
Ответы с готовыми решениями:
4
Асинхронные сокеты Windows Асинхронные сокеты , ф-я WSAAsyncSelect и ее применение Синхронные/асинхронные операции Литература. Синхронные и асинхронные автоматы |
Заблокирован
|
|
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, ты случайно не перепутал, а то у меня в книге(Петзольд) написано так
0
|
Заблокирован
|
|
24.04.2014, 15:17 | 4 |
нет, я ничего не перепутал, я не знаю, что в твоей книге понимается под асинхронными сообщениями. Сообщения 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 | |
24.04.2014, 16:45 | |
Помогаю со студенческими работами здесь
5
Клиент-сервер. Синхронные и асинхронные сокеты Синхронные ScrollBox'ы Синхронные двигатели Синхронные запросы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Обновление сайта www.historian.by
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, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|