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-разрядным адресным пространством.
Используйте HttpWebRequest.BeginGetResponse()
HttpWebRequest webRequest;
void StartWebRequest()
{
webRequest.BeginGetResponse(new AsyncCallback(FinishWebRequest), null);
}
void FinishWebRequest(IAsyncResult result)
{
webRequest.EndGetResponse(result);
}
, функцию обратного вызова называют, когда асинхронная операция завершена. Необходимо, по крайней мере, звонить EndGetResponse()
от этой функции.