n_enrai49 Asked:2022-06-22 03:34:40 +0800 CST2022-06-22 03:34:40 +0800 CST 2022-06-22 03:34:40 +0800 CST Task.Run 和 async/await 有什么区别 [重复] 772 实际上,如果您可以发送到Task.Run(SomeMethod)方法而不是写,有什么区别 async void AsyncMethod() { await Task.Run(SomeMethod); } public void SomeMethod(){} c# .net 1 个回答 Voted Best Answer Olegator36 2022-06-22T03:55:39+08:002022-06-22T03:55:39+08:00 Task.Run()在一个线程中运行代码,也就是几乎和创建和启动一个线程Thread.Start()一样,有一个区别,Task.Run()默认从池中取出一个线程,并 Thread.Start()创建一个新线程。 asyncawait这是一个等待异步任务的系统,与多线程编程没有直接关系。 Task.Run()或者Thread.Start()它应该用于长时间的处理器负载,例如,在复杂的计算(CPU 密集型任务)中,以便将负载分布到多个处理器内核上。async并且await应该用于正常的服务器请求、文件、数据库和其他 I/O 操作(IO-bound 任务)。 您可以在文档中阅读更多内容:异步编程。
Task.Run()
在一个线程中运行代码,也就是几乎和创建和启动一个线程Thread.Start()
一样,有一个区别,Task.Run()
默认从池中取出一个线程,并Thread.Start()
创建一个新线程。async
await
这是一个等待异步任务的系统,与多线程编程没有直接关系。Task.Run()
或者Thread.Start()
它应该用于长时间的处理器负载,例如,在复杂的计算(CPU 密集型任务)中,以便将负载分布到多个处理器内核上。async
并且await
应该用于正常的服务器请求、文件、数据库和其他 I/O 操作(IO-bound 任务)。您可以在文档中阅读更多内容:异步编程。