Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果我不关心精度,我应该使用原子变量float而不是double吗?在64位cpu和64位应用程序上是double-atomic吗_C#_Wpf_Multithreading_Floating Point_Atomicity - Fatal编程技术网

C# 如果我不关心精度,我应该使用原子变量float而不是double吗?在64位cpu和64位应用程序上是double-atomic吗

C# 如果我不关心精度,我应该使用原子变量float而不是double吗?在64位cpu和64位应用程序上是double-atomic吗,c#,wpf,multithreading,floating-point,atomicity,C#,Wpf,Multithreading,Floating Point,Atomicity,我现在使用双变量作为计数器 然而,我的应用程序是多线程的,所以如果操作是原子的,那对我来说就更好了 我可以使用,但数字可以通过整数限制,我不需要精度后。因为它们将被用作计数器 Q:精确地说,它总是在后面提到吗?我是说小于1的操作 Q:那么我的问题是,我想使用double而不是float的原因是什么 我的cpu是最新的gen core i 7 2600k 64位,应用程序也是64位 我们可以说双64位应用程序是线程安全的吗 .NET4.5c#wpf应用程序您的帖子似乎涉及两件事:(A)浮点的数字特

我现在使用双变量作为计数器

然而,我的应用程序是多线程的,所以如果操作是原子的,那对我来说就更好了

我可以使用,但数字可以通过整数限制,我不需要精度后。因为它们将被用作计数器

Q:精确地说,它总是在后面提到吗?我是说小于1的操作

Q:那么我的问题是,我想使用double而不是float的原因是什么

我的cpu是最新的gen core i 7 2600k 64位,应用程序也是64位

我们可以说双64位应用程序是线程安全的吗


.NET4.5c#wpf应用程序

您的帖子似乎涉及两件事:(A)浮点的数字特征,以及(B)线程安全。这些都是非常不相关的话题,我建议将它们分为两个专门的SO问题。我们可以说双64位应用程序是原子的,而不是线程安全的。这还取决于你的意思,如果你不关心次整数值,为什么要使用浮点或双精度?为什么不是int或long?请注意,如果您尝试将1添加到一个大的浮点或双精度浮点,您将得到相同的值。。。换句话说,对于较大的值,两个“最近”值之间的差值大于1。@MonsterMMORPG:查看
Interlocked
类。。。请注意,
++
从来都不是线程安全的,即使对于原子类型也是如此-因为它是读/修改/写的,其他线程可以在这两者之间进行转换。@MonsterMMORPG:您可以使用
联锁的。读