|
|
1
4
您可以将有问题的字段(在本例中是myConfigString)包装到属性中,并在Get/Set中使用使用监视器的代码。锁或互斥锁。然后,访问属性只会锁定单个字段,而不会锁定整个类。 编辑:添加代码
|
|
|
2
3
以下是在OP编辑之前写的:
在编辑之后,我可以说您应该像上面那样做,并且只在一个地方设置配置——配置类。这样,它将是唯一一个在运行时修改配置的类,并且只有在要检索配置选项时。 |
|
|
3
0
您的配置可能是“全局的”,但它们应该是全局的 不 作为一个全局变量公开。如果配置不变,则应使用它们来构造需要信息的对象——手动或通过factory对象。如果他们 可以 然后是一个监视配置文件/数据库/任何内容并实现 Observer pattern 应该使用。 全局变量(甚至那些碰巧是类实例的变量)是一件坏事™ |
|
|
4
0
你说的线程安全是什么意思?需要线程安全的不是全局对象,而是访问代码。如果两个线程几乎同时写入一个成员变量,其中一个线程将“赢”,但这是一个问题吗?如果客户端代码依赖于全局值保持不变,直到完成某个处理单元,那么需要为每个需要锁定的属性创建一个同步对象。没有什么好办法。您可以缓存该值的本地副本以避免出现问题,但该修复的适用性将取决于您的情况。此外,默认情况下,我不会为每个属性创建同步对象,而是在您意识到需要它时创建。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |