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

MSDN “线程安全集合.NET Framework 4”声明:

“一些并发集合类型使用轻量级同步机制,如SpinLock , SpinWait , SemaphoreSlim和CountdownEvent ,它们是.NET Framework 4中的新增function”

虽然MSDN网站告诉SpinWaitwas可用于.NET 1.1,而另一篇MSDN文章从.NET 4.0启动SpinWaitwas

好吧,好奇心来自Lee Grissom的评论,以回答SynchronizedCollection和其他并发集合之间的区别是什么? :

“@Matt,.NET4并发类使用SpinWait对象来解决线程安全而不是Monitor.Enter / Exit(又称Critical部分)?”

以及第一个NSDN引用声明SpinWait是.NET 4.0的新手

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

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

请注意, System.Threading.SpinWait内部调用System.Threading.Thread.SpinWait() 。 有关详细信息,请参阅Joe Duffy撰写的“Windows上的并发编程”(第14章“旋转等待”一节)。

System.Threading.SpinWait 结构被引入.NET 4.自.NET 1.0以来, System.Threading.Thread.SpinWait 方法已经存在。

来自SpinWait结构的文档:

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

请注意,在大多数情况下,您不应该使用其中任何一个的部分:)