任务异步c#编程
我正在用Visual Studio编写C#代码。我在异步任务方法中有一个任务返回函数,如下所示:任务异步c#编程,c#,asynchronous,task,C#,Asynchronous,Task,我正在用Visual Studio编写C#代码。我在异步任务方法中有一个任务返回函数,如下所示: async Task AwaitForSomeTask() { await DoSomething(); } 我编写了DoSomething()方法的两个可能实现(如下所示)。这两种实现之间有什么区别?每种方法的优点和/或缺点是什么 Task DoSomething() { return Task.Run( () => { // Some code } ); } async
async Task AwaitForSomeTask()
{
await DoSomething();
}
我编写了DoSomething()
方法的两个可能实现(如下所示)。这两种实现之间有什么区别?每种方法的优点和/或缺点是什么
Task DoSomething()
{
return Task.Run( () => { // Some code } );
}
async Task DoSomething()
{
// Some code
}
提前谢谢你
async
实际上意味着您将在方法中使用wait
。如果您没有这样做的计划,那么您可以不使用async
关键字返回任务
在任何情况下,都可以对调用方法执行wait
但在第二种情况下,您将做什么还不清楚,因为很难正确回答。选项1用于后台CPU受限的工作
选项2适用于异步工作,即涉及
wait
等待其他任务
返回方法。使用async
关键字可以在代码中使用wait
关键字来执行等待
其他任务(请参阅)
Task.Run(…)
将安排您的代码由线程池中的线程执行(请参阅)我建议您阅读可能重复的可能副本。值得一提的是,多个wait
s将创建多个状态机(幕后),直接返回任务时
将不会。可能是对性能的考虑。