2013-05-03 78 views
1

我有WF在其中我使用並行foreach枚舉項目列表並對每個項目執行一些處理。要求是無限地運行並行foreach,直到用戶介入並停止進程。然而,當有超過20個項目時,我看到多個線程被分離出來,並且CPU使用率將高達​​99%,最終整個系統的響應速度變慢。如何限制可以在WWF中並行創建的線程數。我可以設置任何財產嗎?任何幫助,高度讚賞。在Windows工作流基礎4.0限制並行線程數foreach在Windows工作流基礎4.0

回答

0

WF4不會爲項目新主題。只有在使用異步活動時,纔會得到活動的重疊執行。通常,這對於異步IO來說效果最好,但如果您在活動中通過啓動其他線程來完成後臺編譯,則可以進行後臺編譯。儘管WF運行時只會爲每個工作流實例使用單個線程。

+0

我使用異步活動,因爲我想要所有的項目並行運行。我正在實現parrielism,但問題是所有資源都被並行進程使用,系統變慢。對於每個我可以平行排列的東西,有沒有什麼方法可以實現。我希望並行度爲n數。 – giriSE 2013-05-05 21:28:05

+0

即使使用AsyncCodeActivity或NativeActivity,WF運行時也不會創建其他線程。如果有更多的線程涉及到你正在創建它們,所以你已經在控制。 – Maurice 2013-05-07 14:26:52