ファイルを読み取るための次のコードがあります。
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;
}
}
}
}