如果我把我正在调用的一些方法从我的控制器调到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(() =>
{
....
}
}
答案 0 :(得分:2)
正如@LasseVKarlsen解释的那样,此代码尝试并行执行函数一,二和三。 Task.Run立即对线程池上的指定工作进行排队,.Result将阻塞调用线程,直到其Task(并且只有它的任务)完成为止。
这可能是也可能不是一个好的设计。有些事情需要考虑:
这些注意事项是否表明您的设计发生了变化,这是一个问题,即每项功能的作用,使用时间以及它们对您的业务逻辑的重要性。