Есть ли способ сделать новорожденные потоки наследовать значения состояния ThreadStatic (или что-то вроде этого) на их родительских потоках? Я хотел бы использовать это (или что-то вроде этого) для реализации специальных переменных с динамической областью действия, которые содержат информацию о контексте операций/задач для использования для отслеживания/регистрации и т. Д. Является ли это разумным подходом и может ли он работать?Наследование значений ThreadStatic для реализации динамического охвата в C# /. NET в многопоточном контексте
6
A
ответ
6
Вы не можете «наследовать» значения. Однако новый ThreadLocal<T>
class для .NET 4 позволяет вам предоставить Func<T>
в constructor, который может инициализировать поток на основе состояния родителя. Это обеспечило бы разумное обходное решение.
Смежные вопросы
- 1. Скрытие реализации типов значений в .NET/C#
- 2. Достижение динамического охвата в JavaScript
- 3. ThreadStatic для .net compact framework
- 4. Использование OAuth2RestTemplate в многопоточном контексте
- 5. assert() безопасность в многопоточном контексте
- 6. Какова производительность распределителя C/C++ в многопоточном контексте?
- 7. ThreadStatic Модифицировано Static C#
- 8. Traceback не отображается в многопоточном контексте
- 9. Ресурсы динамического охвата в WPF/XAML?
- 10. Выгрузка монопольных доменов в многопоточном контексте
- 11. Как инициализировать статическую переменную в многопоточном контексте?
- 12. Задачи, не подходящие для динамического охвата
- 13. Задача статического и динамического охвата
- 14. Как сделать метод эксклюзивным в многопоточном контексте?
- 15. Наследование реализации в VBA?
- 16. Классическая Наследование реализации в JavaScript
- 17. Циклическое наследование в реализации реализации интерфейса Фрагмента
- 18. @end отсутствует в контексте реализации
- 19. «@end» отсутствует в контексте реализации
- 20. .Net Наследование двоичной сериализации
- 21. Rails 4: полиморфизм, однонаправленное наследование, область охвата ...?
- 22. Наследование в .NET бесполезно?
- 23. Обеспечение охвата для всех значений перечислений в карте
- 24. Наследование реализации интерфейса в Java
- 25. Наследование реализации Meyer в java
- 26. Обеспечение ограничения в реальном времени в многопоточном контексте
- 27. Наследование наследования в .net
- 28. Множественное наследование в .NET
- 29. Наследование как интерфейса, так и реализации C++
- 30. Архитектура динамического конвейера в .Net
Спасибо, это, безусловно, интересно. Но как я могу позволить ребенку получить доступ к состоянию родителя? –
Вы можете использовать лямбда в родительском объекте, который обеспечивает доступ к переменной (-ам), которая требуется для инициализации ThreadLocal. Это использует форму ленивой инициализации, поэтому при первом использовании вы получите состояние текущего родителя. –
Это не то, что мне нужно в то время по какой-то причине, я забыл, но было приятно узнать об этом в любом случае. –