ThreadStatic, модифицированный статическим C # - PullRequest
51 голосов
/ 15 мая 2009

У меня есть код, где я использую статический объект потока в C #.

[ThreadStatic]
private DataContext connection 

Мне было интересно, в таком случае, что если я получу какое-либо изменение, если я добавлю модификатор static в статический контекст потока?

[ThreadStatic]
private static DataContext connection 

С первой будет ли одна копия контекста на экземпляр для каждого потока, а с другой - только одна копия для потока?

Ответы [ 3 ]

56 голосов
/ 15 мая 2009

ThreadStaticAttribute предназначен только для статических переменных, так как MSDN указывает на . Если вы используете его в переменной экземпляра, я подозреваю, что он точно ничего не сделает.

8 голосов
/ 15 мая 2009

В первом случае это, вероятно, будет проигнорировано, тогда как во втором случае вы правы, один экземпляр на поток.

6 голосов
/ 15 мая 2009

MSDN говорит:

Указывает, что значение поля static уникально для каждого потока.

Так что, я думаю, ваш первый случай неверен ... атрибут, вероятно, будет проигнорирован

...