54

C# でスレッド静的オブジェクトを使用するコードがいくつかあります。

[ThreadStatic]
private DataContext connection 

この場合、静的修飾子をスレッドの静的コンテキストに配置すると、どのような変更が得られるのか疑問に思っていました。

[ThreadStatic]
private static DataContext connection 

最初のものでは、インスタンスごとにスレッドごとに 1 つのコンテキストのコピーがあり、他のものではスレッドごとに 1 つのコピーしかありませんか?

4

3 に答える 3

58

ドキュメントが指摘しているように、ThreadStaticAttributeは静的変数でのみ使用するように設計されています。インスタンス変数で使用すると、まったく何もしないと思います。

于 2009-05-15T13:00:44.567 に答える
9

最初のケースではおそらく無視されますが、2 番目のケースでは、スレッドごとに 1 つのインスタンスが正しいのです。

于 2009-05-15T12:59:40.560 に答える
6

Microsoft Docs では、次のように書かれています

静的フィールドの値がスレッドごとに一意であることを示します。

したがって、最初のケースは間違っていると思います。この属性はおそらく無視されます。

于 2009-05-15T13:04:59.957 に答える