使用CsvHelper编写异步的正确方法

时间:2019-04-30 16:09:15

标签: c# asynchronous csvhelper

有人可以告诉我如何使用 CsvWriter 编写对象列表而不进行阻止吗?这对我来说并不明显。

我是否需要先调用 WriteRecords(),然后再调用 FlushAsync(),还是应该使用 NextRecordAsync()逐个写入每个对象?强>?

实际上,我希望使用一种专用方法,但是它不存在:

public Task WriteRecordsAsync(...);

1 个答案:

答案 0 :(得分:2)

WriteRecords将为您调用NextRecord,因为它正在写多个。因此,您需要手动编写记录。只有几行而已。

foreach (var record in records)
{
    csv.WriteRecord(record);
    await csv.NextRecordAsync();
}

之所以没有WriteRecordsAsync是因为它不是必需的。基本上,这只是复制库中的大多数代码,只是节省了几行。在系统中,对async的最低需求的唯一部分是写入TextWriter,因此在async之上的内容也应尽可能少。