Итак, у меня есть этот код, который берет кучу данных из базы данных и выполняет кучу вычислений с этими данными. Однако не это вызывает остановку. Остановка наступает, когда я беру все эти «окончательные» данные, которые были подготовлены, и записываю их в текстовый файл.
Каждая строка в текстовом файле создается из данных, для которых были выполнены вычисления. Каждая строка «соответствует» записи из базы данных. Пользователю придется выполнять экспорт этого файла обычно примерно для 30-40 тысяч записей за раз. Теперь, хотя я использую StringBuilder, это все еще останавливается из-за чистого количества записей.
В настоящее время в коде я создаю один StringBuilder, добавляю к нему все данные (после вычислений), преобразую его в строку, добавляю его в список (строки), который будет возвращен из функции, а затем очищает StringBuilder , и делаю то же самое для следующей строки, и я делаю это до тех пор, пока каждая строка не будет создана и добавлена, преобразована, а затем вставлена в список.
Затем другой класс получает этот список (строки), берет каждую строку и в конечном итоге добавляет ее в файл.
Кто-нибудь знает, как улучшить этот код и сделать так, чтобы он не останавливал сервер каждый раз? Причина, по которой это не было обнаружено до сих пор, заключается в том, что когда я тестировал его локально, я тестировал его только на 1-50 записях за раз.
Спасибо заранее!
Редактировать:
r = Class.ExportFile(ID)
data = Encoding.ASCII.GetBytes(r.ResponseString)
Return File(data, "text/plain", r.DefaultFileName)
-Скотт