![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Andrei82 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 9.5.2004 Репутация: нет Всего: нет |
Здравствуйте.
У меня возникла проблема с использованием асинхронной функции WSAAsyncGetHostByAddr(), но вероятно, что эта проблема характерна для любых асинхронных функций. Суть такова. Вызываю функцию N раз в цикле. Получаю N ненулевых значений (handle). То есть все N заданий (tasks) должны находиться в процессе выполнения. Так ли это на самом деле? Далее процедура, которая вызывается при получении сообщения от WSAAsyncGetHostByAddr() выполняется N раз, но ПОСЛЕДОВАТЕЛЬНО. Т.е. я ожидал, что все N заданий будут выполняться ПАРАЛЛЕЛЬНО и одновременно вернут мне результат. Но оказалось, что это не так, т.е. равносильно тому, если бы я вызывал функцию N раз последовательно, дождавшись получения результата. Почему так? Как добиться одновременного выполнения асинхронных функций? Спасибо |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
То что в этих функциях написано Async не значит что они выполняются асинхронно в прямом смысле, а означает что эти функции используют асинхрнонную\неблокирующую модель работы WinSock. Что бы их выполнить примерно параллельно тебе нужно создать N-ое количество потоков, все их повесить на WaitForSingleObject, после чего освободить обьект синхронизации, что бы все потоки эти выполнились примерно одновременно
Это сообщение отредактировал(а) <Spawn> - 9.5.2004, 20:17 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |