Как использовать HttpWebRequest (.NET) асинхронно?

max_size() - теоретическое максимальное количество элементов, которые можно поместить в ваш вектор. В 32-битной системе теоретически можно выделить 4Gb == 2 ^ 32, что составляет 2 ^ 32 char, значения 2 ^ 30 int или значения 2 ^ 29 double. Похоже, что ваша реализация использует это значение, но вычитает 1.

Конечно, вы никогда не могли бы выделить вектор, большой; у вас не хватит памяти задолго до этого.

Нет требования о том, какое значение max_size() возвращает, кроме того, что вы не можете выделить вектор, который больше этого. В 64-битной системе он может вернуть 2 ^ 64-1 для char, или он может вернуть меньшее значение, потому что система имеет ограниченное пространство памяти. 64-разрядные ПК часто ограничены 48-разрядным адресным пространством.

147
задан Ferruccio 14 October 2008 в 20:41
поделиться

1 ответ

Используйте HttpWebRequest.BeginGetResponse()

HttpWebRequest webRequest;

void StartWebRequest()
{
    webRequest.BeginGetResponse(new AsyncCallback(FinishWebRequest), null);
}

void FinishWebRequest(IAsyncResult result)
{
    webRequest.EndGetResponse(result);
}

, функцию обратного вызова называют, когда асинхронная операция завершена. Необходимо, по крайней мере, звонить EndGetResponse() от этой функции.

121
ответ дан Jon B 14 October 2008 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: