我刚刚开始使用 C# 的新async
功能。我现在已经阅读了大量关于并行下载等的操作方法,但没有阅读/处理文本文件。
我有一个用于过滤日志文件的旧脚本,我想我会尝试升级它。但是我不确定我对新async
/await
语法的使用是否正确。
在我的脑海中,我看到它逐行读取文件并将其传递给不同的线程进行处理,这样它就可以继续而不等待结果。
我是否正确地考虑它,或者实现它的最佳方法是什么?
static async Task<string[]> FilterLogFile(string fileLocation)
{
string line;
List<string> matches = new List<string>();
using(TextReader file = File.OpenText(fileLocation))
{
while((line = await file.ReadLineAsync()) != null)
{
CheckForMatch(line, matches);
}
}
return matches.ToArray();
}