Нужно организовать отдачу клиенту (браузеру) потенциально большого объёма данных, генерящихся на лету (например это могут быть данные в csv формате).
Сами данные формируются на лету и допустим есть IEnumerable<string> при переборе которого они и формируются.
Как лучше это сделать правильно?
По умолчанию, если писать Response.Write — то все данные будут идти в буфер и при большом их количестве мы либо влетим в OutOfMemoryException либо выжрем слишком много памяти — вообщем невариант.
Если в asp.net отключить беферизацию вывода, то при записе в Response данные сразу будут посылаться в сеть и мелкими кусочками? имеет ли смысл организовывать свою буферизацию (чтоб при достижении какого-то объема данных — они посылались клиенту)?
И как можно делать асинхронно? так как генерация и посылка данных могут занять достаточно много времени, то поток, обрабатывающий реквест, большую часть времени будет ждать сеть...
Кто решал подобную задачу, или имеет представление как можно, поделитесь знанием...