powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
19 сообщений из 19, страница 1 из 1
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519136
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ.
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519143
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это костыль со времён Windows 3, где многопоточности ещё как таковой не было, для тех, кто
так и не смог её освоить. Соответственно использовать их не нужно нигде и никогда.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519188
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. вы предпочитаете запускать WriteFile в отдельном потоке, чем просто вызов WriteFileEx ? Dimitry SibiryakovЭто костыль со времён Windows 3, где многопоточности ещё как таковой не было, для тех, кто
так и не смог её освоить. Соответственно использовать их не нужно нигде и никогда.
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519202
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunterвы предпочитаете запускать WriteFile в отдельном потоке, чем просто
вызов WriteFileEx?
Я предпочитаю WriteFile любой модификации вообще не запускать без необходимости.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519207
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЯ предпочитаю WriteFile любой модификации вообще не запускать без необходимости.
Что это было? Ответ на мой вопрос?
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519210
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterЧто это было? Ответ на мой вопрос?
Именно так.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519216
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovRelic HunterЧто это было? Ответ на мой вопрос?
Именно так.
Ну так вот. WriteFileEx и подобные никогда не существовало под Win 3.1. Так, что все вы написали и про многопоточность и костыли и про Win 3.1 - чушь просто, не более. Асинхронные функции API использовались всегда и везде. И кто их не используется - просто неадекват, мягко говоря.
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519227
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterАсинхронные функции API использовались всегда и везде.
Для чего? Что полезного твоё приложение может сделать после того, как послало запрос на
получение данных, но перед тем, как получило их?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519242
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДля чего? Что полезного твоё приложение может сделать после того, как послало запрос на
получение данных, но перед тем, как получило их?
Странно слышать такие вопросы от уважаемого дона.
Асинхронность нужна, что-бы не подвешивать нить UI, хотя-бы. Часто приходится видеть "Program is not responing" во время долгоиграющих несавершенных процессов? Это как раз оно. Во-втоых, если мне нужно записать 1ГБ данных на диск, это не означает, что мне нужно ждать пока они запишутся в основном потоке. Скинул данные в WriteFileEx и пошел дальше. Данные запишутся в новом не блокирующем потоке IO (многоядернось начинает использоваться). Можно также передать во WriteFileEx колбек фунцкию, по завершению которой выскочит окошко "Данные записаны". Да мало чего еще..
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519255
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterАсинхронность нужна, что-бы не подвешивать нить UI, хотя-бы.
Для этого нужна многопоточность. В особенности тем, у кого мозг заточен на директивную
архитектуру. Для использования асинхронности придётся вкуривать event-driven траву, а она
не каждому по плечо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519292
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДля этого нужна многопоточность. В особенности тем, у кого мозг заточен на директивную
архитектуру. Для использования асинхронности придётся вкуривать event-driven траву, а она
не каждому по плечо.
Ну да, про многопоточность и костыли для Windows 3.1 мы уже послушали, спасибо. Давай про event-driven траву теперь. Ну вот нафига такое писать, не понятно?
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519687
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДля чего? Что полезного твоё приложение может сделать после того, как послало запрос на
получение данных, но перед тем, как получило их?
послать следующий запрос на получение данных, возможно другому источнику, например.
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519690
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

давай лучше на конкретном примере.
Приведи пример асинхронного API и тогда разберём зачем он нужен.
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519730
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Асинхронное API удобно использовать при отрисовке основного окна приложения,
содержащего много виджетов, каждый из которых тянет данные из своего источника
и с разной скоростью (это похоже на работу браузера). Но это я применял не по отношению
к С++ а в других языках и технологиях. По принципу запустил и забыл. Не особо заботясь
о join. Основной профит - компактная логика формочек.

По поводу асинхронного API в файлах. Ну.. наверное трудно сходу придумать полезный
пример где асинхронное чтение или запись файла были-бы оправданы и не "притянуты
за уши".
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519785
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНу.. наверное трудно сходу придумать полезный
пример где асинхронное чтение или запись файла были-бы оправданы и не "притянуты
за уши".
самое обыкновенное копирование файла - неблокирующая запись
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519792
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри что влез.
MasterZivна конкретном примере.
Приведи пример асинхронного API...
Вот вам пример:
Приконнектиться к сайту и чего-нибудь считать

Долго я тогда с этим возился.
Но с wininet.dll API так и не сумел тему осилить.
Остановился в итоге на
Microsoft Internet Transfer Control 6.0 (SP6)
благо VB6 и видимо в контроле за меня все сделали "грамотно".
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519809
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилmaytonНу.. наверное трудно сходу придумать полезный
пример где асинхронное чтение или запись файла были-бы оправданы и не "притянуты
за уши".
самое обыкновенное копирование файла - неблокирующая запись
Смысл? Ускорение копирования? На одном локальном жёстком диске
(99% ноутбуков и раб. станций оборудованы только одним диском)
вам не удастся ничего выдавить. Обыкновенное блочное синхронное
"прочитал-записал" примерно и выдаст в паспортную скорость интерфейса.
Что вы там добъётесь асинхронизмом - непонятно. Ну или приведите
кусок исходника и начальніе условия.

Особые конфигурации (много дисков) - надо рассматривать отдельно и отдельно подходить.
Пожалуй и там узким местом будет не блочность и асинхронность а другие
условия (конфигурация SATA/RAID), и просто пропускные способности
шпинделя которые влияют гораздо сильнее. И возможно даже файловая
система может подкинуть свинью. И ее учесть.
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519818
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И если уж на то пошло, то операция копирования файла сама по себе особого смысла не имеет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
    #38519821
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В оракловом форуме вот периодически поднимают тему "когда вообще транзакция заканчивается".
Вопрос уже философский. И чем дальше в лес - тем партизаны злее. И дисковые устройства
зело умны стали. И софт буферит много чего.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Зачем нужны асинхронные процедуры WinAPi, где их использовать ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]