c# - C# 中哪些操作是原子操作?

标签 c# .net multithreading atomic

有没有一种系统的方法可以知道 C# 中的操作是否是原子操作?或者是否有任何一般准则或经验法则?

最佳答案

对于更完整/详细的内容:

读取和写入 32 位值类型是原子的:这包括以下内在值(结构)类型:bool、char、byte、sbyte、short、ushort、int、uint、float .以下类型(以及其他类型)不保证是原子的:decimal、double、long、ulong

例如

int x;
x = 10; // atomic
decimal d;

d = 10m; // not atomic

引用赋值也是一个原子操作:

private String _text;
public void Method(String text)
{
  _text = text; // atomic
}

关于c# - C# 中哪些操作是原子操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55859535/

相关文章:

c# - 指定 WPF 图表的最小和最大轴

java - 当线程被本质锁阻塞时执行代码

c# - Entity Framework 启动在每个人的计算机上都很慢,但我的

c# - UWP - 项目中包含的文件出现 UnauthorizedAccessException

c# - 延迟任务,超过延迟时间则返回空值

.net - 什么是背景,前景和主线程?

java - 运行 3 个线程并在 Java 中等待

python - 如何为不同Python进程之间的不同神经网络设置共享权重?

c# - 正则表达式删除某些字符周围不需要的空格

c# - 使用 R.Net 版本 1.5.5 创建 REngine 实例