[英]ASP.NET Webmethod - Every Call processes in the same Thread
我必须同时处理不同的繁重的数据库操作。 因此,我决定在ASP.NET站点中对Web方法进行异步调用。
一切工作正常,除了每个调用都在同一线程中处理,这意味着它不是并行处理,而是串行处理。
我的Web方法看起来像这样:
[WebMethod]
public static string Work(string id)
{
Thread.Sleep(3000);
return DateTime.Now.ToString() + " " + id;
}
在Firebug中,我可以跟踪请求。 并行发出10个请求,但时间轴看起来像这样:
Request01 - 18.34s
Request02 - 09.18s
Request03 - 21.36s
Request04 - 06.14s
Request05 - 27.41s
Request06 - 30.45s
Request07 - 15.26s
Request08 - 03.06s
Request09 - 12.21s
Request10 - 24.40s
我了解,每个请求都在同一线程中处理。 但是我该如何避免呢? 谢谢。
谷歌搜索周围并搜索Stackoverflow并没有指出以下问题。 但是创建完之后,它会显示在侧边栏中。
所以我的问题是这个的重复: asp.net从Javascript异步调用WebMethod
我必须在@Page
指令中将EnableSessionState
属性设置为ReadOnly
,因为它不是线程安全的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.