Task HogehogeAsync()みたいなメソッドがあるとします。 そのメソッドをTask FugafugaAsync()で呼ぶときに、単発で呼ぶだけならそのままreturnしてしまいますよね。
async FugafugaAsync()
{
return HogehogeAsync();
}
こんなノリで以下のようなメソッドでやらかしてしまいました。
async FugafugaAsync()
{
IsProcessing = true;
try
{
return HogehogeAsync();
}
finally
{
this.IsProcessing = false;
}
}
これはawaitしないと一瞬でメソッドを抜けてしまうのでIsProcessingが一瞬でtrue→falseになってしまいます。 暫く悩みました。