我的理解是Task
的要點是要抽象出線程,並且不保證每個Task
都有一個新線程。在許多異步請求期間實際上有多少個同時(併發)連接被激活
我調試VS2010中,我有一些與此類似:
var request = WebRequest.Create(URL);
Task.Factory.FromAsync<WebResponse>(
request.BeginGetResponse,
request.EndGetResponse).ContinueWith(
t => { /* ... Stuff to do with response ... */ });
如果我讓X
調用此,例如啓動X
異步Web請求,我如何計算在執行期間的任何給定時間實際進行多少個同時(併發)連接?我認爲在某種程度上它是隻打開最多它可以(在X
是非常高的情況下),以及其他Tasks
都在等待封鎖?
任何深入瞭解這或如何,我可以使用調試器來確定多少激活(開放)連接在執行給定的點是存在的將是巨大的檢查。
基本上,我想知道,如果它是我處理的,或者如果我必須採取特殊的考慮,這樣我就不會出現被攻擊的服務器?
OK,這樣服務器將與一些'500'或其他類似的錯誤代碼,如果它拒絕我的應用程序由於潛在的洪水響應。雖然,對於第一部分,我不確定如何確定我的機器能夠發送多少請求的上限。 – user17753
@ user17753實際上,我懷疑你永遠達不到它,如果你這樣做,那麼這種方法可能會引發異常。如果你實際上提出了很多請求,那麼你可能做錯了什麼...... – Servy
在我看來,這個限制默認爲2個併發連接到*相同的主機*。顯然,這可以在[app.config]中調整(http://msdn.microsoft.com/en-us/library/fb6y0fyc.aspx) – user17753