【发布时间】:2014-11-30 14:31:29
【问题描述】:
我怀疑如果我在数据访问层中使用异步功能是否有任何性能提升,如下所示:
public async Task<IEnumerable<TrnApplicant>> GetAllMemberApplicantsAsync(String webReferenceNumber)
{
using (var context = new OnlineDataContext())
{
var applicant = await Task.Run(() => context.Applicants.First(
app => app.RefNo.Equals(webReferenceNumber, StringComparison.OrdinalIgnoreCase)) );
return GetApplicantsInGroup(applicant.ApplicantsGroupId);
}
}
如果不是,什么时候更有意义?
【问题讨论】:
-
单个请求永远不会更快,优点是它不会阻塞。
-
取决于如何衡量性能。对于使用 ASP.Net 服务器的单个用户,性能会下降。对于服务 1M hit/s,您会发现好处(假设您避免
Task.Run并且仅异步 I/O)。
标签: c# asp.net-mvc asp.net-mvc-4 asynchronous c#-5.0