我剛剛開始使用C#的新async
功能。我已經閱讀了大量關於並行下載等的操作方法,但是讀取/處理文本文件時沒有任何操作。使用C#5.0異步讀取文件
我有一箇舊腳本,我用它來過濾日誌文件,並認爲我會去升級它。但是,我不確定我的新語法的使用是否正確。
在我的腦海裏,我看到這樣逐行閱讀文件,並將它傳遞給不同線程進行處理,因此它可以繼續而不用等待結果。
我是否正確地思考它,或者實現它的最佳方式是什麼?
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();
}
完整的腳本:http://share.linqpad.net/29kgbe.linq
剛看過[msdn文檔](http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx),它清楚地表明我正在考慮錯誤中的關鍵字辦法。在這種情況下,我認爲他們可以做很多事情來提高績效。 – 2013-02-11 14:16:22
我可以推薦這個嗎? http://blog.jerrynixon.com/2012/06/windows-8-how-to-read-files-in-winrt.html – 2013-02-11 15:24:42