3

MSDNの「スレッド セーフ コレクション .NET Framework 4」には次のように記載 されています。

「一部の並行コレクション型は、.NET Framework 4 の新 機能であるSpinLockSpinWaitSemaphoreSlim、およびCountdownEventなどの軽量同期メカニズムを使用します」

一方、MSDN の Web サイトでは、SpinWaitwas は .NET 1.1 まで利用可能でしたが、別の MSDN の記事では、SpinWaitwas が .NET 4.0 から開始されています。

さて、興味深いのは、Lee Grissom のコメントによる回答です。SynchronizedCollectionと他の同時実行コレクションの違いは何ですか? :

「@Matt、.NET4 並行クラスはSpinWaitオブジェクトを使用して、Monitor.Enter/Exit (別名クリティカル セクション) の代わりにスレッド セーフに対処しますか?」

SpinWait.NET 4.0 の新機能 であると述べている最初の NSDN の引用と同様に

それで、それは新しいですか?
そして、新しい場合、どのように?

4

2 に答える 2

7

構造体 は .NET 4 に導入されました。メソッド.NET 1.0 から存在しています。System.Threading.SpinWait System.Threading.Thread.SpinWait

構造のドキュメントからSpinWait

通常、SpinWait は通常のアプリケーションでは役に立ちません。ほとんどの場合、Monitor など、.NET Framework によって提供される同期クラスを使用する必要があります。ただし、スピン待機が必要なほとんどの目的では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 章、「スピン待機」セクション) を参照してください。

于 2013-02-27T11:25:56.303 に答える