Должно ли WaitHandle
s и другие объекты синхронизации, которые используются несколькими потоками, объявлены как volatile
?Должен ли я объявлять WaitHandle (s) изменчивым?
ответ
volatile
применим только в том случае, если вы переадресовываете поле.
Для EventHandlers, compiler will handle thread-safety; вы не должны беспокоиться об этом.
Для других объектов синхронизации вы, вероятно, не должны переопределять переменные в первую очередь. (это не то же самое, что мутация)
Использование readonly
, а не volatile
.
из предыдущего недавнего вопроса, отправленного @Xaqron, у них проблемы с потоками и попытки решить с помощью метода« сосать его и видеть ». –
@Mitch: Это не об этом вопросе (регистраторе) – Xaqron
@Xaqron: NO. но оба вопроса в основном касаются резьбовых соединений и их незнания. –
- 1. Должен ли я сделать объект изменчивым?
- 2. Должен ли я объявлять https в web.config?
- 3. Должен ли я полностью объявлять отбрасываемые объекты?
- 4. Почему я должен объявлять переменную?
- 5. Где я должен объявлять статические переменные?
- 6. Когда я должен объявлять типы возвращаемых функций?
- 7. Когда я должен объявлять абстрактные методы?
- 8. Должен ли я объявлять операторы преобразования явными в C++ 11?
- 9. Должен ли я объявлять прототип функции для каждой функции?
- 10. Должен ли я объявлять переменную на каждой странице php?
- 11. Должен ли я объявлять компоненты swing в моем приложении final ..?
- 12. Должен ли я объявлять методы абстрактного класса в соответствующем интерфейсе?
- 13. Должен ли я объявлять все функции виртуальными в базовом классе?
- 14. Должен ли я объявлять объект Message в качестве члена класса?
- 15. Должен ли я объявлять их как float или string
- 16. Должен ли я объявлять методы объекта javascript в прототипе объекта?
- 17. Должен ли я объявлять размер массива для int?
- 18. Должен ли я объявлять услугу $ http при использовании других сервисов?
- 19. Должен ли я объявлять каждое действие в файле манифеста?
- 20. Должен ли я подкласс массива или объявлять его как член?
- 21. Должен ли я объявлять конструктор в прототипе в js?
- 22. Почему я должен объявлять функцию в C?
- 23. Является ли func_globals изменчивым?
- 24. Как проверить, установлен ли WaitHandle?
- 25. Является ли WaitHandle лучшим вариантом?
- 26. WaitHandle AsyncWaitHandle
- 27. Является ли boost tuple изменчивым?
- 28. Node.js: Должен ли я хранить `assert()` s в производственном коде?
- 29. Какой unicode он должен сделать такой эффект? = ͟͟͞͞s = ͟͟͞͞s = ͟͟͞͞s = ͟͟͞͞s = ͟͟͞͞s = ͟͟͞͞s = ͟͟͞͞s = ͟͟͞͞s
- 30. Должен ли я нарушать S в SOLID или я должен нарушать принцип DRY?
@Xaqron : не принимайте это неправильно, НО, тот факт, что вы задаете этот вопрос, означает, что вы, вероятно, делаете что-то неправильно ... –
На самом деле у меня есть состояние гонки, которое меня подозревает , Что делать, если поток переходит к 'WaitOne()' другому потоку 'Set()' object? – Xaqron
@ Xaqron: вы когда-нибудь видели пример неустойчивого обработчика событий? –