C# NET 4.0 SpinWait方法与4.0 SpinWait()之前的方法有何不同?

C# NET 4.0 SpinWait方法与4.0 SpinWait()之前的方法有何不同?,c#,.net,multithreading,concurrency,spinwait,C#,.net,Multithreading,Concurrency,Spinwait,MSDN声明: “某些并发集合类型使用轻量级 同步机制,例如,SpinWait, ,和,它们在.NET中是新的 框架4“ 而MSDN网站告诉我们,虽然另一篇MSDN文章 好奇的是Lee Grissom的评论回答: “@Matt,.NET4并发类使用SpinWait对象来寻址 线程安全,而不是监视器。进入/退出(又称关键部分)?” 以及第一个NSDN引用,指出SpinWait是.NET4.0的新功能 那么,它是新的还是不新的? 如果是新的,怎么办 将结构引入.NET4。System.Threadi

MSDN声明:

“某些并发集合类型使用轻量级 同步机制,例如,SpinWait, ,和,它们在.NET中是新的 框架4“

而MSDN网站告诉我们,虽然另一篇MSDN文章

好奇的是Lee Grissom的评论回答:

“@Matt,.NET4并发类使用
SpinWait
对象来寻址 线程安全,而不是监视器。进入/退出(又称关键部分)?”

以及第一个NSDN引用,指出
SpinWait
是.NET4.0的新功能

那么,它是新的还是不新的?
如果是新的,怎么办

结构引入.NET4。
System.Threading.Thread.SpinWait
方法自.NET 1.0以来一直存在

SpinWait
结构的文档中:

SpinWait通常不适用于普通应用程序。在大多数情况下,您应该使用.NET Framework提供的同步类,例如Monitor。但是,对于大多数需要旋转等待的情况,应首选
SpinWait
类型而不是
SpinWait
方法


请注意,有一部分说在大多数情况下不应使用这两种方法:)

struct
System.Threading.SpinWait
是.NET 4.0的新结构。方法
System.Threading.Thread.SpinWait()
自.NET 1.0以来就存在


请注意,
System.Threading.SpinWait
在内部调用
System.Threading.Thread.SpinWait()
。有关更多详细信息,请参阅Joe Duffy的“Windows上的并发编程”(第14章“Spin Waiting”一节)。

从您的链接来看,在没有其他知识的情况下,.NET 1.1中似乎有一个
SpinWait
函数,而
SpinWait
结构是在.NET 4.0Oh中添加的。在我看来,关于线程安全的所有答案都是线程不安全的。合谋阻止我进行多线程编程