Anthony D
Anthony D

Reputation: 11247

ThreadStatic Modified with Static C#

I have some code where I use a thread static object in C#.

[ThreadStatic]
private DataContext connection 

I was wondering, in this case, what if any change would I get if I put the static modifier on the thread static context?

[ThreadStatic]
private static DataContext connection 

With the first would there be one copy of the context per instance per thread, with the other only one copy per thread?

Upvotes: 54

Views: 14840

Answers (3)

Thomas Levesque
Thomas Levesque

Reputation: 292345

In Microsoft Docs, it says:

Indicates that the value of a static field is unique for each thread.

So I guess your first case is incorrect. The attribute will probably be ignored.

Upvotes: 6

Noldorin
Noldorin

Reputation: 147240

The ThreadStaticAttribute is only designed to be used on static variables, as the documentation points out. If you use it on an instance variable, I suspect it will do precisely nothing.

Upvotes: 58

Otávio Décio
Otávio Décio

Reputation: 74250

In the first case it would probably be ignored, whereas in the second case you are correct, one instance per thread.

Upvotes: 9

Related Questions