memomem

備忘録・メモ置き場

C# Unity async/await に関する備忘録

try{
{
       // do something
}
catch (System.OperationCanceledException e)
{
      Debug.LogWarning("##### cancel #####");
      Debug.LogWarning(e);
}
catch (Exception e)
{
      Debug.LogError(e);
}

は実装しておく。

中でエラーが発生した時や、Cancel発生時などは確実にキャッチする。

catch (Exception e) が無いと、task 内部でエラーが発生したときに、エラー表示されない。
後々面倒になるので、手間を惜しまず記述する。

async Task Wait(CancellationToken token)
{
       // do something
}

キャンセルする可能性のあるTask には CancellationTokenSource を引数で渡すようにしておく。
Task.Delay なども CancellationToken を渡せれるようになっているのでその記載に準じて記載する。

await Task.Delay(5000, tokenSource.Token)