【发布时间】:2018-07-16 17:30:16
【问题描述】:
我有一个调用多个私有方法的公共方法。我必须用 async 和 await 标记流程中的所有方法还是只标记耗时工作的方法?
【问题讨论】:
-
async和await几乎可以肯定不会像您认为的那样做。async“just”将您可以在方法中编写的内容从“不带await的C#”更改为“带await的C#”。await是一种在不占用线程的情况下暂停执行的方法。两者都与耗时工作的代码无关(假设该代码受 CPU 限制) -
开始阅读here
-
@Damien_The_Unbeliever 大量耗时的工作不受 CPU 限制。像大多数 IO 工作一样。如果它受 CPU 限制,则确实需要多线程。但这种情况相当罕见。根据我的口味,人们倾向于过度使用多线程,即使使用 async+await 进行多任务处理也可以。
-
我正在从数据库中读取批量数据,我希望此时暂停该过程。要访问数据库,我在该方法中有多个私有方法。我是否需要在该过程中用
async和await标记所有方法,还是只标记实际调用数据库的方法。 -
DB Access 听起来就像是在没有多线程的情况下通常可以完成的那种 Multitaskign 工作。但是,根据您在客户端上实际进行处理的方式,可能会有一些 CPU 工作。因此,在这种情况下,适当的多线程可能会更好。如果您不向我们展示您的代码,就无法判断。
标签: c# async-await