型 ‘System.Threading.Tasks.TaskCanceledException’ の例外が System.Private.CoreLib.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした(C#)

エラー

型 ‘System.Threading.Tasks.TaskCanceledException’ の例外が System.Private.CoreLib.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした

上のエラーが発生したのだが、解決に手間取った。

原因は、asnycな関数の戻り値をvoidにしていたことだった。

//voidをTaskに修正する。
public async void OnGetAsync(){}
//            ↓
public async Task OnGetAsync(){}

戻り値をvoidにしてしまうと、関数呼び出し側でTaskが終了したか判定できないため、awaitできていなかったようだ。

これが原因で他にもNullReferenceExceptionが起きるとかいろいろなエラー発生パターンがある。

NullReferenceException: Object reference not set to an instance of an object.

非同期のエラーは分かりづらいので注意したい。

参考にしたスレ

コメント

タイトルとURLをコピーしました