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
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for