не отвечает приложение с system.io.file.writeAllBytes и системной оперативной памяти

#c# #filestream

#c# #filestream

Вопрос:

Я использую приведенный ниже файл для преобразования байтового массива, считанного из базы данных, в PDF, и в базе данных около 31000 строк, после преобразования примерно 200 строк приложение выходит из строя и больше не отвечает, оперативная память увеличивается до максимума. что именно я делаю не так?

 var scanFile = (from t in _dbContext.ScanFiles
    where t.ID == scan.ID
    select t)
    .FirstOrDefault();
if (scanFile != null)
{
    System.IO.File.WriteAllBytes(fileName, scanFile.Data);
}
 

что я могу сделать, чтобы избежать этой проблемы с оперативной памятью, а также сбоя приложения? заранее спасибо

РЕДАКТИРОВАТЬ: изменил мой код на:

 using (FileStream fileStream = new FileStream(fileName, FileMode.Create))
{
    fileStream.Write(scanFile.Data, 0, scanFile.Data.Length);
    fileStream.Close();
}
 

но все равно возникает та же проблема.

Комментарии:

1. Возможные проблемы: вы не освобождаете ресурсы, вы сохраняете предыдущие файлы (массивы байтов?) В памяти, Поэтому в конечном итоге ваше приложение потребляет слишком много памяти; или одна из записей очень велика и не может быть обработана (недостаточно памяти? «зависающее приложение» также может быть вызвано тем, что ваша программа все еще обрабатывает в том же потоке, что и ваш «пользовательский интерфейс»).

2. Файлы @Styxxy имеют размер не более ~ 11 МБ, поэтому я предполагаю, что причиной должно быть не освобождение ресурсов?? Как я могу освободить предыдущие файлы из памяти? Я изменил свой код, чтобы использовать filestream, и он все тот же.

3. Не знаю, вносит ли это какие-либо изменения, но размещаете ли вы _dbContext между файлами?

4. @Magnus Нет, но я попробую, хотя я не думаю, что это может быть причиной проблемы, сейчас я попытаюсь перенести весь процесс в новый поток и посмотреть, имеет ли это какое-либо значение. в любом случае спасибо

5. @Magnus удаление _dbContext и его повторная инициализация немного уменьшили объем используемой памяти, и я преобразовал около 500 PDF-файлов, но использование памяти все равно увеличивается через некоторое время, есть идеи, как сохранить использование памяти как можно ниже?