小伙伴们应该对C#中的await/async模式都很熟悉了,对于一个Task或者Task<T>对象,使用await进行异步任务的等待
那么对于一些方法的返回值是Task类型的异步方法呢?
比如说
C#
private Task<int> Foo()
{
return Task.Run(() => 1);
}
private async void Boo()
{
int i = await await Foo().ContinueWith(task => Foo());
Console.WriteLine(i);
}这样会看到一个很丑陋的两个await await。
在一些情况下可以使用如下方式进行避免
C#
private async void Boo()
{
await Foo();
int i = await Foo();
Console.WriteLine(i);
}当然也可以使用
c#
private async void Boo()
{
int i = await Foo().ContinueWith(task => Foo()).Unwrap();
Console.WriteLine(i);
}进行一个更加优雅的方式替代
参考链接: