2014-02-26 39 views
0

我必須同時處理不同的重型數據庫操作。所以我決定在我的ASP.NET網站中對webmethod進行異步調用。ASP.NET Webmethod - 每個調用進程在同一線程中

一切工作正常,除了每個調用都在同一個線程中處理,這意味着它不處理並行,而是串行。

我WEBMETHOD正在尋找這樣的:

[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 

我明白,每個請求都在同一個線程中處理。但我怎麼能避免這種情況? 謝謝。

回答

1

谷歌搜索和搜索Stackoverflow不指向我下面的問題。但創建後,它顯示在邊欄中。

所以我的問題是這樣的重複: asp.net call WebMethod from Javascript asyncronous

我不得不做出的@Page指令的EnableSessionState屬性來ReadOnly,因爲它不是線程安全的。

相關問題