При использовании потоков потребление памяти должно быть таким же, как размер буфера. Тем не менее, я не уверен, как работает поток, когда я смотрю на следующий код, который использует http запрос и ответ. (HttpWebRequest, чтобы быть точным)
Stream requestStream = webRequest.GetRequestStream();
// Here write stuff to the stream, data is a string.
webRequest.ContentLength = data.Length;
byte[] buffer = Encoding.UTF8.GetBytes(data);
// Obtain request stream from request object so I can send data.
requestStream = webRequest.GetRequestStream();
requestStream.Write(buffer, 0, buffer.Length);
WebResponse response = webRequest.GetResponse();
Я могу продолжать записывать вещи в requestStream, скажем, в цикле, вместо того, чтобы просто писать одну строку, но ни одна из них не достигнет целевого сервера, пока не будет выполнен вызов webRequest.GetResponse ().
Затем, как (или где) данные управляются потоком до выполнения последней строки?