C# 在单个进程中运行时,异步有意义吗

C# 在单个进程中运行时,异步有意义吗,c#,asp.net-mvc,asynchronous,architecture,C#,Asp.net Mvc,Asynchronous,Architecture,在MVC应用程序中,我希望在每个页面请求上记录一些数据,这需要一个数据库调用来将数据插入sql server 使此日志操作异步有意义吗 这对我来说没有意义,因为这个web应用程序是作为单个进程运行的,所以如果性能有问题,那么如果日志操作是异步完成的,它将不会有帮助,因为它也会影响web应用程序 我错了吗?你说得对,只有在表现不是严重问题的情况下才有意义。但无论如何,您总是可以将日志放入操作数据库之外的其他数据库。@teovankot可能会指出,即使性能有问题,也不会有帮助,除非asych调用是指

在MVC应用程序中,我希望在每个页面请求上记录一些数据,这需要一个数据库调用来将数据插入sql server

使此日志操作异步有意义吗

这对我来说没有意义,因为这个web应用程序是作为单个进程运行的,所以如果性能有问题,那么如果日志操作是异步完成的,它将不会有帮助,因为它也会影响web应用程序


我错了吗?

你说得对,只有在表现不是严重问题的情况下才有意义。但无论如何,您总是可以将日志放入操作数据库之外的其他数据库。@teovankot可能会指出,即使性能有问题,也不会有帮助,除非asych调用是指向其他进程,即另一个服务。从逻辑角度看,这是正确的陈述-您从完全错误的假设开始(只有当操作在多个进程中运行时,异步才有意义,而.Net代码从来都不是这样)因此,任何结论都将保持整个语句为真。@AlexeiLevenkov但是asych操作正在进行阻塞db调用,那么在同一进程中移动到asych如何帮助呢?当然,您可以有多个进程,即您可能正在调用的另一台服务器或第三方API。在asp.ne中使用async Wait的异步代码的目的是t是释放线程。这意味着您的线程被释放到线程池,可用于其他请求。您的应用程序可能在单个进程中运行,但可以与线程池中的多个线程同时处理多个请求。对数据库或其他i/o的异步调用允许服务器同时处理更多请求同时。但是,只有在高负载(每秒大量请求)时才会注意到差异。检查