#c# #.net #asp.net #httpwebrequest #asynchronous
#c# #.net #asp.net #httpwebrequest #асинхронный
Вопрос:
Если я отправлю HttpWebRequest и отправлю его с помощью BeginGetResponse с обратным вызовом, мой обратный вызов никогда не будет выполнен. Страница завершается до получения ответа.
Как мне получить ответ?
Я попытался установить таймер:
ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), null, DefaultTimeout, true);
но опять же, если DefaultTimeout (в миллисекундах) установлен на 1 миллисекунду, он достигает обратного вызова. Но если он установлен на 30 секунд, то обратный вызов никогда не запускается.
Как мне снова получить доступ к запросу / результату?
Ответ №1:
Если вы хотите дождаться завершения веб-запроса, прежде чем разрешить продолжение выполнения вашего кода, вам нужно будет использовать синхронный метод GetResponse вместо асинхронного метода BeginGetResponse . Это заблокирует текущий поток до завершения запроса.
Комментарии:
1. я не хочу этого ждать. я хочу, чтобы он запускался сам по себе и другим событием (нажатием другой кнопки), чтобы проверить, выполнено ли это