2010-06-16 29 views
1

我正在開發用C#開發的Windows應用程序。我在Windows世界有點新鮮。我想在給定的時間點限制爲這個應用程序運行的並行線程的數量。這個數字可以由用戶在更強大的機器上進行更改。什麼是做這種配置的最佳方式以及如何實現。我可以想到以下方法。 1.使用ConfigurationManager讀取配置值。如果用戶存在超過N個線程顯示消息並給出選項以修改N的值 2.使用註冊表項?在C中構建的windows應用程序的可配置性#

在此先感謝! Sam

+2

這似乎不是正確的解決方案。 Windows調度程序非常好 - 如果您的線程數多於內核線程數,性能不會受到影響。理想情況下,你將擁有與內核相同數量的線程,請參閱:http://stackoverflow.com/questions/1542213/how-to-find-the-number-of-cpu-cores-via-net-c – 2010-06-16 09:27:06

回答

1

正如Andrew在評論中所說,我不確定這是否是件好事。

但是,關於實際問題。假設這是每個用戶設置,我將它作爲配置文件中的用戶設置,這樣您就有了默認值,但每個用戶都可以根據需要進行更改。詳情請參閱here

1

作爲一個答案,原來的問題: 在我看來存儲配置/設置在.NET Windows應用程序的最佳方法是使用設置項目的屬性選項卡: Project's Settings tab http://img6.imageshack.us/img6/8156/settingswn.png

這樣的話,你會有一個強大的類型實例來表示這些設置。 例如Properties.Settings.Default.MaxWorkerThreads

此外,它將提供該設置的默認值,所以如果用戶沒有複製/創建配置文件,該設置將具有其默認值。對於限制並行線程的數量本身,我建議您使用Task Parallel Library (TPL)Parallel LINQ (PLINQ)(取決於您正在解決的實際問題) - 尤其是如果您的應用程序僅依賴於計算能力(而不是網絡帶寬, 例如)。 TPL有一些邏輯可以在運行時分配最佳線程數。

有關該主題的更多主題,請參閱Parallel Programming in the .NET Framework

相關問題