Bedenken Sie, dass das im Jahr 2008 war - I glaube, dass .NET 4 ist viel schneller für ThreadStatic
Felder als .NET 3.5 war. Ich kann mich nicht sicher erinnern, aber Sie könnten Tests durchführen, wenn Sie wollen.
Das heißt, ich bin nicht wirklich von der Testbeschreibung überzeugt - weil es unrealistisch ist. Haben Sie wirklich müssen wiederholt ein Thread-lokales Feld in einer Schleife lesen? Ist es nicht wahrscheinlicher, dass Sie es einmal lesen und dann ein bisschen später in einem anderen Code?
Letztendlich ist die eigentliche Frage, ob einer oder beide dieser Ansätze für Ihre spezielle Anforderung gut genug sind. Ich bevorzuge ThreadLocal<T>
zu ThreadStatic
nicht aus Leistungsgründen, sondern weil es für eine geeignete Initialisierung ermöglicht - siehe meine article on randomness für ein Beispiel.
Toller Artikel über Zufall, und danke für die Antwort Jon. Ich bin mit ThreadLocal einfach gegangen, weil es im Vergleich zu ThreadStatic viel schlauer (und instance-sicherer) ist. – Mark
@Mark: Genau - es ist viel schöner :) –