2010-01-21 15 views
6

¿Hay alguna manera de hacer que los hilos recién engendrados hereden los valores del estado de ThreadStatic (o algo similar) en sus hilos padre? Me gustaría utilizar esto (o algo similar) para implementar variables especiales de "ámbito dinámico" que contengan información de contexto de operación/tarea para usar para rastrear/registrar, etc. ¿Es este un enfoque razonable, y se puede hacer que funcione?Heredar valores de ThreadStatic para implementar el ámbito dinámico en C#/.NET en contexto multiproceso

Respuesta

6

No se pueden "heredar" los valores. Sin embargo, el nuevo ThreadLocal<T> class para .NET 4 le permite proporcionar un Func<T> en el constructor, que puede inicializar el hilo según el estado del padre. Esto proporcionaría una solución razonable.

+0

Gracias, esto es ciertamente interesante. Pero, ¿cómo permitiría que el niño acceda al estado de los padres? –

+0

Puede utilizar una lambda en el elemento primario que proporcione acceso a la (s) variable (s) en cuestión que son necesarias para iniciar el ThreadLocal . Esto utiliza una forma de inicialización lenta, por lo que en el primer uso, obtendría el estado del padre actual. –

+0

esto no hizo lo que necesitaba en ese momento por alguna razón que he olvidado, pero fue bueno saber de todos modos. –

Cuestiones relacionadas