Compartilhar via


Acesso thread-safe

A própria classe Regex possui segurança de segmentos e é imutável (somente leitura). Ou seja, os objetos Regex podem ser criados em qualquer segmento e compartilhados entre segmentos; métodos correspondentes podem ser chamados a partir de qualquer segmento e nunca alterar qualquer estado global.

No entanto, objetos resultados ( Match e MatchCollection ) retornados pelo Regex devem ser usado em um único segmento. Embora muitos desses objetos são logicamente imutáveis, suas implementações poderiam atrasar a computação de alguns resultados para melhorar o desempenho, e como resultado, os chamadores devem serializar o acesso a eles.

Se houver a necessidade de compartilhar objetos resultados do Regex em vários segmentos, esses objetos podem ser convertidos em instâncias com segurança de segmento ao chamar seus métodos sincronizados. A exceção dos enumeradores, todas as classes de expressão normal possuem segurança de segmentos ou podem ser convertidas em objetos com segmentos seguros por um método sincronizado.

Enumeradores são a única exceção. Um aplicativo precisa serializar chamadas a enumeradores de coleções. A regra é que se uma coleção pode ser enumerada em mais de um segmento simultaneamente, você deve sincronizar os métodos do enumerador no objeto raiz da coleção desviada pelo enumerador.

Consulte também

Conceitos

Expressões Regulares do .NET Framework