【发布时间】:2013-01-26 12:57:37
【问题描述】:
我刚刚开始使用 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();
}
【问题讨论】:
-
刚刚查看了msdn docs,这清楚地表明我正在以错误的方式考虑关键字。在这种情况下,我认为他们无法提高性能。
-
我可以推荐这个吗? blog.jerrynixon.com/2012/06/…
标签: c# asynchronous windows-8 async-await c#-5.0