|
1
1
没有足够的代码来拨打电话。但是,如果不序列化对文件的写访问权,则不会发生什么好事。如果第一个线程仍在忙于写入文件,则分配该属性的第二个线程将在IOException上爆炸。 像这样的细粒度锁定通常是一个问题。客户端代码可能正忙于更改类的多个属性。如果引发异常,您将得到部分更新,生成的文件包含无效的序列化状态,并且在读取时可能会导致问题。您需要类似于beginupdate()、endupdate()对的东西。 |
|
|
2
5
这取决于你在不同的线程上调用什么。 如果一次在不同的线程上设置属性,这是不安全的,因为属性在序列化时会发生更改。 |
|
|
3
1
不。 在您希望同步属性本身的情况下,此代码不是线程安全的,因为“lock”不在“prop1”值上,而只在“ser”上。实际上,当线程获取属性时,该属性可以由另一个线程设置。 即使在序列化过程中,用户也可以访问可由其他线程在执行过程中更改的属性(当用户运行时,另一个线程集prop1)。 此代码实际上不允许多个线程使用xmlserialize-ser对象。 如果这是你想要的… 答案基本上取决于你想要得到什么。 |
|
|
4
0
如果
来自msdn,
认为这是一种良好的做法。它不会使您发布的代码安全,因为正如其他人所说,当类被序列化时,
|
|
|
5
0
不是线程安全的,除非属性类型是原子的。 简单的例子,使用线程A和B。
数据的完整性可能会受到损害。即使是像int64这样简单的类型,理论上也会出现问题。
再放一个
|
|
|
6
0
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |