【发布时间】:2014-05-28 13:05:54
【问题描述】:
我正在我的 ASP.NET 解决方案中构建一个页面,该页面从第 3 方 API 服务中检索其大部分数据。
页面本身需要对 API 进行大约 5 次不同的单独调用以填充其所有控件,因为对 API 的每个 Web 请求都会返回不同的数据集。
我想同时处理我在新线程上发出的每个单独的 Web 请求,以减少加载时间。
我提出的每个请求都像这样:-
WebRequest request = WebRequest.Create(requestUrl);
string response = new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();
return new JsonSerializer().Deserialize<OccupationSearch>(new JsonTextReader(new StringReader(response)));
首先,我应该尝试这个吗?即,它安全吗?它会通过多线程来提高性能吗?
其次,最好的方法是什么?多线程系统有很多不同的方法,但哪种方法最适合这项任务?
【问题讨论】:
-
每个 Web 请求应该已经是 IIS 中的不同工作线程,具体取决于您的服务承受的负载量以及 IIS 的设置方式。因此,如果您谈论多线程,您将尝试将每个请求完成的工作细分为多个线程。
-
我会看看异步执行它。使用
request.GetResponseAsync()等人。
标签: c# asp.net multithreading webrequest