メモの日々


2018年11月01日(木) [長年日記]

[c#] CS4041警告を抑制する

C#7にて、async修飾されたメソッドを呼び出すときにawaitキーワードを付けていないと、コンパイラからC4041が警告される。

CS4014 この呼び出しを待たないため、現在のメソッドの実行は、呼び出しが完了するまで続行します。呼び出しの結果に 'await' 演算子を適用することを検討してください。

awaitを付けずにこの警告を抑制するにはどうするか。警告の説明にその方法が書いてあった。

非同期呼び出しの完了を待つ必要がなく、呼び出されたメソッドで例外が発生しないことが確実である場合に限り、警告を抑制することを検討してください。 その場合は、呼び出しのタスクの結果を変数に割り当てることで警告を抑制することができます。

「呼び出しのタスクの結果」という表現がよくわからないが、単にメソッドの戻り値を変数に代入すれば警告が出なくなるようだ。C#7には破棄があるので、これを使うのがよさそう。

    _ = CallAsync();