Tenga en cuenta que eso fue en 2008 - I creo que que .NET 4 es mucho más rápido para los campos ThreadStatic
que .NET 3.5. No puedo recordarlo con certeza, pero podrías hacer pruebas si quieres.
Dicho esto, la descripción de la prueba no me convence, porque no es realista. ¿Tiene realmente necesidad de leer repetidamente un campo local de subprocesos en un bucle? ¿No es más probable que lo leas una vez y luego, un poco más tarde, en un código diferente?
En última instancia, la verdadera pregunta es si alguno o ambos enfoques funcionan lo suficientemente bien para sus necesidades particulares. Prefiero ThreadLocal<T>
a ThreadStatic
no por razones de rendimiento, sino porque permite la inicialización adecuada; consulte mi article on randomness para ver un ejemplo.
Gran artículo al azar, y gracias por la respuesta de Jon. Terminé yendo con ThreadLocal simplemente porque es mucho más inteligente (y seguro para las instancias) en comparación con ThreadStatic. – Mark
@Mark: Exactamente, es mucho mejor :) –