我这里有这段代码用于阅读文件:
private void ReadFile()
{
using (StreamReader reader = File.OpenText("data.txt"))
{
while ((currentline = reader.ReadLine()) != null)
{
currentline = currentline.ToLower();
currentline = RemoveChars(currentline);
currentline = RemoveShortWord(currentline);
AddWords(currentline);
}
}
}
我想读取大文件的异步文件,但不知道如何在这里做。你能指出正确的方向吗?
这就是我试图让它异步的原因:
private async void ReadFile()
{
using (StreamReader reader = File.OpenText("dickens.txt"))
{
while ((currentline = await reader.ReadLineAsync()) != null)
{
currentline = currentline.ToLower();
currentline = RemoveChars(currentline);
currentline = RemoveShortWord(currentline);
AddWords(currentline);
}
}
}
似乎我的AddWords
方法无效(使用异步时)。此方法将字词添加到字典中:
private void AddWords(string line)
{
string[] word = line.Split(' ');
foreach (string str in word)
{
if (str.Length >= 3)
{
if (dictionary.ContainsKey(str))
{
dictionary[str]++;
}
else
{
dictionary[str] = 1;
}
}
}
}
答案 0 :(得分:3)
避免使用async void
。返回async
的方法的void
等效项为async Task
,而不是async void
。
在使用字典之前,将private async void ReadFile()
更改为private async Task ReadFileAsync()
并await
结果。