我正在運行一個具有2個主要目標的winservice。如何設置WCF線程以進行不同的調度
- 執行/處理暴露的webmethods。
- 運行消耗CPU分配的內部進程。
的問題是,當我執行許多內部流程|正在排隊到線程池或taskpool(如任務)中,webMethods的執行需要更多的時間,WCF還排隊其執行相同的線程池。甚至在將內部進程任務優先級設置爲最低並將webmethods線程優先級設置爲高時也會發生這種情況。
我希望Framework 4.0能夠改善這一點,而且他們有,但是如果CPU正在處理其他內部任務,系統仍然需要花費相當長的時間來處理WCF排隊的任務。
- 是否有可能更改WCF使用的線程池到另一個?
- 是否可以手動更改任務隊列(全局任務隊列,本地任務隊列)。
- 是否有可能手動處理2個行爲不同的任務隊列?
任何有關該主題的幫助都將被佔用。
吉拉德。
我已經使用SetMinThreads,導致線程池默認生成更多的線程。這部分解決了這個問題,但是導致進程在負載非常低的情況下仍然可以分配線程。當進程中分配的小任務也阻塞了線程池隊列時,這並不能完全解決問題。 通過更改線程優先級,可以禁止所有內部線程,並優先考慮來自用戶的請求,但只有在線程池執行任務時纔有可能。 Thread.CurrentThread.Priority = ThreadPriority.Highest – Gilad 2010-05-23 07:36:42