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.