我正在开发一个用C#开发的Windows应用程序。我在windows世界里有点新鲜。我想在给定的时间点限制为此应用程序运行的并行线程数。用户可以在更强大的机器上更改此编号。执行此配置的最佳方法是什么以及如何实现。我可以想到以下方法。 1.使用ConfigurationManager读取配置值。如果用户存在超过N个线程显示消息并给出选项,则修改N的值。 2.使用registery entry?
提前致谢! 山姆
答案 0 :(得分:1)
安德鲁在评论中说,我不确定这是不是一件好事。
然而,关于实际问题。假设它是每用户设置,我将其作为配置文件中的用户设置,这样你就有了默认值,但每个用户都可以根据需要进行更改。有关详细信息,请参阅here。
答案 1 :(得分:1)
作为原始问题的答案: 在我看来,在.NET中存储Windows应用程序配置/设置的最佳方法是使用项目属性的Settings选项卡: 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。