Y a-t-il un moyen de faire en sorte que les threads nouvellement créés héritent des valeurs de l'état ThreadStatic (ou quelque chose comme ça) sur leurs threads parents? Je voudrais utiliser ceci (ou quelque chose comme ça) pour implémenter des variables spéciales "à portée dynamique" qui contiennent des informations de contexte d'opération/tâche à utiliser pour le suivi/enregistrement, etc. Est-ce une approche raisonnable et peut-elle fonctionner?Héritage des valeurs ThreadStatic pour implémenter la portée dynamique dans C#/.NET dans un contexte multithread
6
A
Répondre
6
Vous ne pouvez pas "hériter" des valeurs. Toutefois, le nouveau ThreadLocal<T>
class pour .NET 4 vous permet de fournir un Func<T>
dans le constructor, qui peut initialiser le thread en fonction de l'état du parent. Cela fournirait une solution de contournement raisonnable.
Questions connexes
- 1. héritage dynamique dans Ruby
- 2. Boost weak_ptr dans un programme multithread pour implémenter un pool de ressources
- 3. C++ héritage: la portée et la visibilité des membres
- 4. dynamique Fetch un héritage dans Entity Framework 4 POCO
- 5. Création d'aides de portée dynamique dans Rails
- 6. Comment implémenter l'opérateur [] pour un tableau dynamique?
- 7. héritage dynamique - Java
- 8. Élimination déterministe des objets ThreadStatic
- 9. CallContext vs ThreadStatic
- 10. Contexte LINQ dynamique
- 11. Transmutation dynamique et héritage multiple
- 12. héritage de template django et contexte
- 13. dynamique URL Contexte CSS
- 14. placeholder pour stocker des valeurs temp dans un contexte de threads C#
- 15. Comment implémenter des tableaux dans un interpréteur?
- 16. Est-il prudent d'utiliser la variable ThreadStatic dans WCF?
- 17. Comment implémenter une fonction multithread simple
- 18. Pour gérer Window.open dans la demande Portée dans jsf
- 19. BufferedReader dans un environnement multithread
- 20. JavaScript Rhino et la portée dynamique var création
- 21. Héritage des modèles dans WPF
- 22. portée de la plate-forme QMake valeurs
- 23. Comment implémenter la journalisation dans une application Web ASP.NET multithread (service Web asmx)
- 24. Portée des transactions dans WCF
- 25. Héritage dynamique en utilisant une usine
- 26. Énumération dynamique de valeurs pour une propriété dans .Net
- 27. Accès multithread des composants dans Delphi
- 28. Portée dans un objet littéral
- 29. JavaScript multithread dans IE6?
- 30. Utilisation. dans un [] pour entrer dans une nouvelle portée
Merci, c'est certainement intéressant. Mais comment pourrais-je permettre à l'enfant d'accéder à l'état des parents? –
Vous pouvez utiliser un lambda dans le parent qui fournit l'accès à la variable (s) en question qui sont nécessaires pour initialiser le ThreadLocal. Cela utilise une forme d'initialisation paresseuse, donc lors de la première utilisation, vous obtiendrez l'état du parent actuel. –
cela n'a pas fait ce dont j'avais besoin à l'époque pour une raison que j'ai oubliée, mais c'était quand même sympa de le savoir. –