[英]Task.Run without async or await
如果我将要从控制器调用的一些方法放入Task.Run中,这到底在做什么? 我没有使用异步功能,也没有使用等待。
...
FunctionOne();
FunctionTwo();
return View(FunctionThree().Result);
}
private void FunctionOne()
{
Task.Run(() =>
{
....
}
}
private void FunctionTwo()
{
Task.Run(() =>
{
....
}
}
private Task<MyType> FunctionThree()
{
return Task.Run(() =>
{
....
}
}
正如@LasseVKarlsen解释的那样,此代码尝试并行执行功能一,二和三。 Task.Run立即将指定的工作在线程池中排队,并且.Result将阻塞调用线程,直到其Task (和仅其任务)完成。
这可能是一个好的设计,也可能不是。 要考虑的一些事情:
这些考虑是否暗示您的设计发生了变化,这是每个功能的作用,花费的时间以及它们对您的业务逻辑的重要性的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.