我已经编写了与MSSQL数据库进行交互的服务器。它当前是用.NET 4.0编写的,并且使用NHibernate作为ORM从数据库中检索信息。在阅读有关.NET 4.5和async / await关键字的介绍时,我了解到,不幸的是,NHibernate不支持async / await。
我不明白为什么向数据库发出异步调用会有所帮助。并非所有请求都在数据库级别排队吗?异步会不会增加故障点而不改善任何东西?
通常,这样做的好处是在运行可能昂贵的(异步)操作时,您不会阻塞当前正在执行的线程。在WPF / Windows窗体应用程序的上下文中,这意味着您没有阻止UI线程(如果请求是从该线程发起的),并且您的应用程序仍处于响应状态。
在Web应用程序(例如IIS)的上下文中,这意味着您在等待结果的同时释放池中的线程。由于您未锁定线程,因此可以重用该线程来接受另一个请求,并在接受的连接(不一定是时间/请求)方面提高性能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句