【问题标题】:ASP.NET Webmethod - Every Call processes in the same ThreadASP.NET Webmethod - 每个调用都在同一个线程中处理
【发布时间】: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


    【解决方案1】:

    谷歌搜索和搜索 Stackoverflow 并没有将我指向以下问题。但是在创建我的之后,它会显示在侧边栏中。

    所以我的问题与此重复: asp.net call WebMethod from Javascript asyncronous

    我必须将@Page 指令中的EnableSessionState 属性设置为ReadOnly,因为它不是线程安全的。

    【讨论】:

      猜你喜欢
      • 2020-09-03
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      相关资源
      最近更新 更多