【发布时间】:2014-02-11 08:06:27
【问题描述】:
我有一个包含设置的单例静态类Settings.Instance.MemberName。
此类位于包含多个项目的解决方案内的 GlobalSettings 项目中。
所有项目都编译为 DLL 并由外部 Windows 服务进程使用。
在此解决方案的一个项目中,我有 100-200 个 ClassA 实例,此类用于使用网络套接字从设备轮询数据。
轮询是用一定的逻辑完成的,我使用来自Settings.Instance的设置,
例如,设置是轮询之间的睡眠时间。
socket.Send(..);
Thread.Sleep(Settings.Instance.SleepBetweenSendAndReceive);
socket.Receive(..);
我的问题是,做什么更好?
所有实例都应该像上面一样直接调用 Settings.Instance.MaxNetworkRetries。
-
在 ClassA 构造函数中,我应该将所有设置加载到本地 静态 私有成员
(Thread.Sleep(_sleepBetweenSendAndReceive);)
-
在 ClassA 构造函数中,我应该将所有设置加载到本地私有成员
(Thread.Sleep(_sleepBetweenSendAndReceive);)
什么可以提供最佳性能?或者也许根本没有区别。
【问题讨论】:
-
您是否遇到过与该代码相关的任何性能问题?也许更重要的问题是:
Settings.Instance.MemberName值在程序执行期间是否有可能发生变化? -
他们不会改变。我在使用套接字的过程中遇到了性能问题,我正在尽我所能以使这段代码更好地工作,我知道这是一个小的改进,如果有的话.. 我只是好奇什么更好,还有教育目的.