CA2259: Ensure ThreadStatic
is only used with static fields
Property | Value |
---|---|
Rule ID | CA2259 |
Title | Ensure ThreadStatic is only used with static fields |
Category | Usage |
Fix is breaking or non-breaking | Non-breaking |
Enabled by default in .NET 8 | As warning |
Cause
The ThreadStaticAttribute attribute is applied to an instance field.
Rule description
ThreadStaticAttribute, which indicates that the value of a field is unique for each thread, only affects static
(Shared
in Visual Basic) fields. When applied to instance fields, the attribute has no impact on behavior.
How to fix a violation
To fix a violation, remove the ThreadStaticAttribute attribute from the field.
Example
The following code snippet shows a violation of CA2259:
class C
{
[ThreadStatic]
public int number = 404;
}
Class C
<ThreadStatic>
Public number As Integer = 404
End Class
When to suppress warnings
It's safe to suppress a warning from this rule. However, the [ThreadStatic]
attribute is a nop and isn't doing what you intended it to do.
See also
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.