Наследование значений ThreadStatic для реализации динамического определения объема в C#/.NET в многопоточном контексте
Есть ли способ заставить вновь порожденные потоки наследовать значения состояния ThreadStatic (или что-то подобное) в своих родительских потоках? Я хотел бы использовать это (или что-то подобное) для реализации "динамически ограниченных" специальных переменных, которые содержат информацию о контексте операции / задачи, используемую для отслеживания / ведения журнала и т. Д. Является ли это разумным подходом и можно ли заставить его работать?
1 ответ
Решение
Вы не можете "наследовать" значения. Тем не менее, новый ThreadLocal<T>
класс для.NET 4 позволяет предоставить Func<T>
в конструкторе, который может инициализировать поток на основе состояния родителя. Это обеспечит разумный обходной путь.