CA2259: garantir que ThreadStatic seja usado apenas com campos estáticos

Property Valor
ID da regra CA2259
Título Certifique-se de que ThreadStatic seja usado apenas com campos estáticos
Categoria Usage
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão no .NET 8 Como aviso

Causa

O atributo ThreadStaticAttribute é aplicado a um campo de instância.

Descrição da regra

ThreadStaticAttribute, que indica que o valor de um campo é exclusivo para cada thread, afeta apenas campos static (Shared no Visual Basic). Quando aplicado a campos de instância, o atributo não tem impacto sobre o comportamento.

Como corrigir uma violação

Para corrigir uma violação, remova o atributo ThreadStaticAttribute do campo.

Exemplo

O seguinte snippet de código mostra uma violação de CA2259:

class C
{
    [ThreadStatic]
    public int number = 404;
}
Class C
    <ThreadStatic>
    Public number As Integer = 404
End Class

Quando suprimir avisos

É seguro suprimir um aviso desta regra. No entanto, o atributo [ThreadStatic] é um nop e não está fazendo o que você pretendia que ele fizesse.

Confira também