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

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

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

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

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


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