c# - 如何以线程安全的方式增加(增加值)小数?

标签 c# thread-safety

我有一个 decimal 变量,可以同时从多个线程访问。 Interlocked 类函数根本不支持小数,所以我剩下的唯一方法是使用 lock(){}。这似乎有点矫枉过正。

是否有其他方法以线程安全的方式将值添加到 decimal 变量?

最佳答案

使用锁并不过分。这是必需的

像 System.Decimal 这样的结构类型从来都不是原子的,它也不适合 native cpu 字长。这就是为什么 Interlocked 也没有过载的原因。

关于c# - 如何以线程安全的方式增加(增加值)小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19517311/

相关文章:

java - 等待不活动的逻辑

java - 线程中的最终字段语义

java - 如何确保两个线程访问相同的资源并使它们线程安全?

c# - Random.Next() 总是返回 0

C# 将小数安全地转换为 int

c# - 在 C# 中循环遍历 json 响应

c# - 当您不知道 ID 时,Sharepoint 中的批处理元素删除列表项

c# - .NET 运行时中的 Tcp 缓冲中断

c# - 如何使用 asp.net 压缩图像而不损失图像质量

c# - 发生故障时创建新的 ChannelFactory<T>