【发布时间】:2014-02-26 08:42:00
【问题描述】:
我必须同时处理不同的繁重数据库操作。所以我决定在我的 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
我了解,每个请求都在同一个线程中处理。但是我怎样才能避免这种情况呢? 谢谢。
【问题讨论】:
标签: c# asp.net multithreading webmethod