c# – 使Controller方法异步或保持同步?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 使Controller方法异步或保持同步?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1375字,纯文字阅读大概需要2分钟。
内容图文
![c# – 使Controller方法异步或保持同步?](/upload/InfoBanner/zyjiaocheng/796/f7914796f9f947ae989fd4a3adfdecbc.jpg)
参见英文答案 > When should I use Async Controllers in ASP.NET MVC? 7个
我正在使用预先存在的C#ASP.NET MVC webapplication,我正在添加一些功能,我无法决定是否进行异步.
现在,应用程序主页只处理一个页面,用户登录.没有更多,也没有任何异步.
我正在添加一些功能,当访问主页时,将生成对Web API的调用,该API随后调用抓取标识符的数据库并将其返回到主页上的HTML标记.此标识符在屏幕上不可见,仅在源/ HTML视图上可见(这是为了各种内部跟踪目的而添加的).
Web API /数据库调用很简单,只需获取标识符并将其返回给控制器即可.无论如何,我想知道应用程序是否应该异步调用此调用?网站流量不是很大,但我仍然想知道并发性,性能和未来的可扩展性.
唯一的问题是,我必须使整个ActionMethod异步,我不确定它的影响是什么.目前同步的基本模式如下:
public ActionResult Index()
{
var result = GetID();
ViewBag.result = result.Data;
return View();
}
public JsonResult GetID()
{
var result = "";
var url = "http://APIURL/GetID";
using (WebClient client = new WebClient())
{
result = client.DownloadString(url);
}
return Json(result, JsonRequestBehavior.AllowGet);
}
有什么想法吗?
解决方法:
这里,使用异步IO的原因是没有多个线程同时运行.线程消耗OS资源和内存.线程池也可能有点慢,以适应突然负载.如果您在Web应用程序中的线程数低于100并且加载不是非常简单,那么您无需担心.
通常,Web服务越慢,它被称为更有益的异步IO就越频繁.您将需要平均(延迟*频率)线程运行.因此,100ms通话时间和每秒10次通话平均约为1个线程.
运行数字,看看是否需要更改任何内容.
内容总结
以上是互联网集市为您收集整理的c# – 使Controller方法异步或保持同步?全部内容,希望文章能够帮你解决c# – 使Controller方法异步或保持同步?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。