2010-01-21 4 views
6

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

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.

+0

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? –

+0

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. –

+0

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ć. –

Powiązane problemy