Visual Studio:如何轻松地将方法及其调用者转换为异步
Visual Studio: How to easily convert a method and its callers to async
在 VS2019 中,是否可以将方法的签名更改为 return a Task
或 Task<T>
并以级联方式使所有上游调用者异步?
In VS2019, is it possible to change a method's signature to return a Task or Task...
简短的回答是否定的
因为可以重构方法的名称,如果您选择智能感知选项重命名,调用者的名称将会更改,但它不会处理任何您想要的异步需求。换句话说,重构不是异步感知的。
为了异步,需要将方法标记为异步,并 return 任务或任务。我们可以这样改:
//previously:
public int Something()
{
int something = ...;
return something;
}
//now
public async Task<int> Something()
{
int something = ...;
return await Task.FromResult(something);
}
请注意,这并没有使它本质上是异步的,它只是处理它的签名。
在 VS2019 中,是否可以将方法的签名更改为 return a Task
或 Task<T>
并以级联方式使所有上游调用者异步?
In VS2019, is it possible to change a method's signature to return a Task or Task...
简短的回答是否定的
因为可以重构方法的名称,如果您选择智能感知选项重命名,调用者的名称将会更改,但它不会处理任何您想要的异步需求。换句话说,重构不是异步感知的。
为了异步,需要将方法标记为异步,并 return 任务或任务。我们可以这样改:
//previously:
public int Something()
{
int something = ...;
return something;
}
//now
public async Task<int> Something()
{
int something = ...;
return await Task.FromResult(something);
}
请注意,这并没有使它本质上是异步的,它只是处理它的签名。