No cambiar la cultura de un hilo de subprocesos que afecta cuando se volvió de nuevo a la piscina?
-
13-09-2019 - |
Pregunta
Si fijo el CurrentCulture
de un hilo grupo de subprocesos, lo que ocurre cuando el hilo finaliza la ejecución y se volvió de nuevo a la agrupación de hebras? ¿Consigue su CurrentCulture
restablece al valor predeterminado (cualquiera que sea), o va a conservar la cultura he puesto en él?
Estoy esperando que el marco restablece el hilo a un estado predeterminado para protegerse contra esto, pero no puedo encontrar ninguna documentación a este efecto. Lo más cerca que he encontrado es a partir de la documentación de MSDN para ThreadPool :
Cuando el grupo de subprocesos vuelve a utilizar un hilo, no borra los datos de hilo almacenamiento local o en campos que son marcado con el ThreadStaticAttribute atributo. Por lo tanto, los datos que se colocado en almacenamiento local de subprocesos por uno método puede ser expuesto a cualquier otro método que se ejecuta por el mismo subproceso del grupo de subprocesos.
Esto parece indicar que el hilo es no restablece cuando se devuelve.
He intentado algunos ejemplos de código para tratar de probar esto, y hace parece que la cultura se pone a cero, pero no estoy convencido de que estoy probando este comportamiento correctamente como creo que sólo soy utilizando un pequeño subconjunto de las discusiones de la ThreadPool, y así no puede estar seguro de que estoy probando un hilo que ya ha tenido su conjunto cultura.
Solución
Yo no confiar en la ThreadPool nunca Restablecimiento de la información, específicamente por el texto que ha citado.
Si usted está preocupado por "cambiar" la cultura de la agrupación de hebras, me aseguraría de ponerla a cero cuando la tarea se ha completado roscado. Esta es una tarea bastante simple.
No creo que la corriente de subprocesos hace esto, pero incluso si sí , que no sería seguro asumir que .NET 4 + 's aplicación ThreadPool no va a cambiar.