我想写一个大约一千万行的文件。我正在将StreamWriter
与using语句一起使用,但是StreamWriter
似乎没有刷新。这是我的代码:
public void ExportRecords(IEnumerable<Record> records, string path)
{
using(TextWriter writer = new StreamWriter(path))
{
writer.WriteLine("header");
foreach(var record in records)
{
string line = "";
//Fill line with record properties
writer.WriteLine(line);
}
}
}
在StreamWriter
的特定行上不添加任何行。那么问题出在哪里呢?
EDIT
如前所述,代码是异步运行的。
是这样的:
Task.Run(() =>
{
if (!String.IsNullOrEmpty(folderPath))
{
var records = _generator.GenerateData();
_dataService.ExportRecords(records, $"{folderPath}/RECORDS.csv");
//Just a message box
_reporter.ReportMessage($"Generation and exportation finished");
}
else
{
IsGenerating = false;
_reporter.ReportMessage("No output file was created");
}
});
因此,我确实设置了一个断点来检查该方法是否开始执行,并且确实如此。我只是表示代码没有卡在生成方法中。