Мне нужно записать большое количество несортированных данных (50000000 номеров) в файл. Во время выполнения я получаю OutOfMemoryException
. Как это исправить?Исключение из памяти, пытаясь записать большой объем данных в файл
private void backgroundWorkerGenNum_DoWork(object sender, DoWorkEventArgs e)
{
int numLimit = 50000000;
Random randomize = new Random();
List<string> strNums = new List<string>();
var array = Enumerable.Range(1, numLimit).ToArray();
array = array.OrderBy(n => Guid.NewGuid()).ToArray();
StreamWriter file = new StreamWriter("numbers.txt");
int i = 0;
foreach(int element in array)
{
file.WriteLine(element);
++i;
backgroundWorkerGenNum.ReportProgress(i);
}
}
Покажите полную трассировку стека ошибок, пожалуйста. –
Post ReportProgress также – RyPope
Также: 'StreamWriter' реализует' IDisposable', и поэтому его время жизни должно быть обернуто в конструкцию 'using', поэтому оно детерминировано. –