私はasychメソッドとして宣言しているメソッドがあります。コードは以下の通りです。ビジュアルスタジオのエラー/非同期構文に関する提案
private async Task<string> tempPassword()
{
char[] hashes = "[email protected]$#".ToCharArray();
Random r = new Random(DateTime.Now.Millisecond);
List<char> bits = new List<char>();
while (bits.Count < 7)
{
int i = r.Next(0, hashes.Length);
if (!bits.Contains(hashes[i]))
bits.Add(hashes[i]);
}
return string.Join("", bits.ToArray());
}
このコードが正しいとコンパイルですが、Visual Studioは私に次のようなフィードバックを与える:
この非同期メソッドは待つ演算子を欠いており、synchroniously実行されます。 await演算子を使用してノンブロッキングAPIコールを待機するか、 'await Task.Run(...)'を使用して、バックグラウンドスレッドでCPUバウンド処理を行うことを検討してください。
私は非同期的な背景を持っていませんが(正直言ってそれを使用しているので、私は学びます)、この方法では何もないようです私はそれが私が待っているはずであるものであるかどうかについて少し厄介です。
コードにasyncはありません。そのため、非同期としてマークするべきではありません。それはコンパイラがあなたに伝えようとしているものです。署名を 'private string tempPassword()'に変更するだけです。 –