3

MSDN “线程安全集合 .NET Framework 4”指出:

“一些并发集合类型使用轻量级同步机制,例如SpinLockSpinWaitSemaphoreSlimCountdownEvent,它们是 .NET Framework 4 中的新功能”

而 MSDN 网站告诉SpinWaitwas 在 .NET 1.1 中可用,而另一篇 MSDN 文章从 .NET 4.0 开始 SpinWaitwas

好吧,好奇来自 Lee Grissom 的评论,回答SynchronizedCollection 和其他并发集合有什么区别?

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

以及第一个 NSDN 引用说明这SpinWait是 .NET 4.0 的新内容

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

4

2 回答 2

7

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

SpinWait结构的文档中:

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

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

于 2013-02-27T11:25:32.823 回答
3

该结构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”部分)。

于 2013-02-27T11:25:56.303 回答