CSV Reader 抛出异常“无法从传输连接读取数据。现有连接被远程主机强制关闭”

问题描述 投票:0回答:1

我正在尝试从 s3 存储桶中读取一个非常大的 csv 文件,每个文件的行大小为 100000。当达到特定行数时,我使用yield return 返回对象。然后,我正在处理数据并再次获取,然后它抛出异常。我做了一些调试,发现如果超过 20 秒未获取行,则会抛出异常。如何让读者更长时间地保持反对?

using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)
{
 while(csv.Read())
{
 //data insertion to table logic
if(table.Rows.Count == 100000)
{
yield return table;
}
}
}

我在 foreach 循环中调用此方法。 另外,请告诉我是否有办法实现从 Amazon S3 存储桶下载多部分文件。

我尝试将 using 块转换为 using 语句,并将 LeaveOpen 参数传递为 CsvReader 对象的 true。

c# streamreader csvreader
1个回答
0
投票

增加超时或块大小:如果读取器对象在 20 秒后超时,您可能需要考虑增加超时时间,或者在处理之前获取更大的行块。这样,您就可以减少频繁获取新数据的开销。

© www.soinside.com 2019 - 2024. All rights reserved.