我正在研究WCF Web服務的性能改進。此Web服務調用可能需要很長時間才能響應的其他Web服務(5秒以上)。由於我們的服務負載很重,所以我們可以體驗到所有線程都被使用的情況,因爲他們正在等待下游服務響應。這導致整個系統備份等。任務<T>實際上是否降低了使用的線程數?
所以我正在研究如果使用WCF異步任務模式將實際上幫助這裏。我真正的問題是調用下游服務的線程究竟發生了什麼,以至於它正在等待響應呢?該線程仍然分配給調用,只是在後臺工作人員池或其他東西?我需要能夠證明,轉向異步任務實際上會降低使用的線程數量,如果這樣做的話。
更多信息。所以出於好奇,就像一個正在傾聽響應的線程?我的意思是必須打開一個TCP套接字,並繼續聽最後的迴應,對吧?那是什麼?它是否使用單個線程(或固定線程池)在它正在監聽的所有連接之間共享? –
一般來說,這是模式,是的。一個或多個線程共享端口並在一個循環中偵聽,當他們得到響應時,他們立即在線程上旋轉它並返回到偵聽。 – Haney