2013-02-27 3 views
3

MSDN "Thread-Safe Collections .NET Framework 4" состояние:Как метод NET 4.0 SpinWait отличается от pre-4.0 SpinWait()?

"Некоторые из параллельных типов коллекций использовать легкие механизмы синхронизации, такие как SpinLock, SpinWait, SemaphoreSlim и CountdownEvent, которые являются новыми в Framework 4 .NET "

В то время как веб-сайт MSDN сообщает, что SpinWaitwas was available as far as .NET 1.1 в то время как другая статья MSDN starts SpinWaitwas from .NET 4.0

Ну, любопытство с комментарием Ли Гриссом ответить What is the difference between SynchronizedCollection and the other concurrent collections?:

«@ Matt, то .NET4 параллельных классов используют SpinWait объекты для решения потокобезопасности вместо Monitor.Enter/Выход (ака критический раздел)?

, а также первый NSDN процитировать о том, что SpinWait является новым для .NET 4.0

Таким образом, это новое или нет?
И если новый, то как?

+1

От взгляда на ваши ссылки и без каких-либо других знаний кажется, что * функция * 'SpinWait' присутствовала в .NET 1.1 и структура' SpinWait' была добавлена ​​в .NET 4.0 –

ответ

3

В-структуру System.Threading.SpinWait является новым для .NET 4.0. Метод System.Threading.Thread.SpinWait() существует с .NET 1.0.

Отметьте, что System.Threading.SpinWait внутренне звонит System.Threading.Thread.SpinWait(). Подробнее см. «Параллельное программирование в Windows» Джо Даффи (глава 14, раздел «Ожидание спина»).

+0

О, [снова эта книга] (http://stackoverflow.com/a/15110525/2031316). Нет больше .NET-книг по параллелизму, только один? – Fulproof

7

System.Threading.SpinWaitструктура была введена в .NET 4. System.Threading.Thread.SpinWaitметод присутствует с .NET 1.0.

Из документов для SpinWait структуры:

SpinWait как правило, не полезно для обычных приложений. В большинстве случаев вы должны использовать классы синхронизации, предоставляемые .NET Framework, такие как Monitor. Однако для большинства целей, когда требуется ожидание вращения, тип SpinWait должен быть предпочтительнее по методу SpinWait.

Примечание часть, которая говорит, что вы не должны использовать любой из них в большинстве случаев :)

+0

Выглядит как все ответы о безопасности потоков небезопасны. Заговор, чтобы удержать меня от многопоточного програмирования – Fulproof

 Смежные вопросы

  • Нет связанных вопросов^_^