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.
Powiązane problemy
- 1. $ wartości zakresu w AngularJS
- 2. Tworzenie zakresu dynamicznego
- 3. widelec w wielowątkowym programie
- 4. przechwytywanie SIGINT w programie wielowątkowym
- 5. Reguły określania klasy w Pythonie
- 6. Pomoc z funkcją kompresji zakresu dynamicznego (audio)
- 7. czas wykonywania w środowisku wielowątkowym
- 8. Używanie Log4Net w środowisku wielowątkowym
- 9. Wartości konkluzji w kwerendzie MySQL (w celu obsługi zerowych wartości)
- 10. Czy istnieje sposób dynamicznego określania ivars klasy w czasie wykonywania w Cocoa/Cocoa Touch?
- 11. Rozszerzanie protokołu UICollectionViewDataSource w celu dodania domyślnych implementacji
- 12. Definiowanie właściwości w pliku nagłówkowym względem celu pliku implementacji c
- 13. Dołączanie dwóch tabel danych w celu nadpisania wartości według zakresu dat
- 14. Różnica między blokiem i funkcji w zakresie określania zakresu w Perl
- 15. Czy możliwe jest osiągnięcie dynamicznego zakresu w JavaScript bez odwoływania się do eval?
- 16. Specjalizacja szablonowa dla zakresu wartości
- 17. ThreadStatic dla zadania TPL
- 18. ThreadStatic zmodyfikowany za pomocą statycznego C#
- 19. Threadpool w kontekście IIS
- 20. Co ze stanem wyścigu w czytaniu wielowątkowym?
- 21. Jak działa HttpContext.Current w środowisku wielowątkowym?
- 22. Używanie unixODBC w wielowątkowym, współbieżnym ustawieniu
- 23. Dziwny wyjątek 0x0eedfade w wielowątkowym programie Delphi
- 24. Jak działa malloc w środowisku wielowątkowym?
- 25. Jak rozwiązać "cassandra.cluster.NoHostAvailable" w wielowątkowym programie Python
- 26. Najlepsza praktyka używania HttpClient w środowisku wielowątkowym
- 27. ApplicationContextInitializer w kontekście innym niż web Spring?
- 28. Nieodwracalne błąd blok określania zakresu, tablica funktorów C++
- 29. Jaki jest najlepszy sposób dynamicznego określania adresu URL przekierowania dla strategii OAuth w pliku passport.js?
- 30. Nie można użyć zwracanej wartości funkcji w kontekście zapisu?
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ć. –