Czy istnieje sposób na to, aby nowo utworzone wątki dziedziczyły wartości stanu ThreadStatic (lub coś podobnego) na wątkach nadrzędnych? Chciałbym użyć tego (lub coś podobnego) do implementacji zmiennych dynamicznych o dynamicznym zakresie, które zawierają informacje o kontekście operacyjnym/zadaniowym do wykorzystania do śledzenia/rejestrowania itp. Czy jest to rozsądne podejście i czy można je zastosować?Dziedziczenie wartości ThreadStatic w celu implementacji dynamicznego określania zakresu w C#/.NET w kontekście wielowątkowym
6
A
Odpowiedz
6
Nie można "dziedziczyć" wartości. Jednak nowa wersja ThreadLocal<T>
class dla .NET 4 umożliwia dostarczenie Func<T>
w constructor, która może zainicjować wątek w oparciu o stan rodzica. Zapewni to rozsądne obejście.
Dzięki, jest to z pewnością interesujące. Ale w jaki sposób mogę pozwolić dziecku na dostęp do państwa rodziców? –
Można użyć wartości lambda w obiekcie nadrzędnym, która zapewnia dostęp do zmiennych, których dotyczy inicjatywa ThreadLocal. Wykorzystuje to formę leniwej inicjalizacji, więc przy pierwszym użyciu uzyskasz stan bieżącego rodzica. –
to nie zrobiło tego, czego potrzebowałem w tym czasie z jakiegoś powodu, o którym zapomniałem, ale i tak miło było o tym wiedzieć. –