【发布时间】:2009-04-29 02:04:07
【问题描述】:
我有一个应用程序需要遍历文本文件中的所有行,大小超过千兆字节。其中一些文件有 10 或 100 的数百万行。
我当前(和同步)阅读的一个例子,看起来像......
using (FileStream stream = new FileStream(args[0], FileMode.Open, FileAccess.Read, FileShare.Read)) {
using (StreamReader streamReader = new StreamReader(stream)) {
string line;
while (!string.IsNullOrEmpty(line = streamReader.ReadLine())) {
//do stuff with the line string...
}
}
}
我已经阅读了一些关于 .Net 异步 IO 流式传输方法的资料,我正在寻求有关此问题的 2 个具体问题的帮助。
首先,如果我需要每一行的整体性,我会通过异步读取这些文件来提高性能,这些文件通常很短,但长度不同(文件中的每一行之间没有关系)?
其次,如何将上面的代码转换为异步读取,以便像现在一样逐行处理每一行?
【问题讨论】:
标签: .net multithreading file-io c#-2.0