async void test()
{
// エラー:CS4008 void を待機することができません
await this.testAsync();
}
async void testAsync()
{
await Task.CompletedTask;
}
エラーメッセージ
エラー CS4008 void を待機することができません

解決方法
戻り値の型を void から Task に変更します。呼ぶ側ではなく、呼ばれる側の関数です。修正前のコード
async void test()
{
// エラー:CS4008 void を待機することができません
await this.testAsync();
}
async void testAsync()
{
await Task.CompletedTask;
}
修正後のコード
async void test()
{
await this.testAsync();
}
async Task testAsync()
{
await Task.CompletedTask;
}
検証環境
- .NET 5.0
- Microsoft Visual Studio Professional 2019 Version 16.11.2
- Microsoft Windows 10 Pro Version 21H2 OS Build 19044.1415 Experience: Windows Feature Experience Pack 120.2212.3920.0