Pergunta

ou você deve sempre criar algum outro objeto de bloqueio?

Foi útil?

Solução

Sim, lançá-lo para um IDictionary e fechadura do .SyncRoot:

Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();

lock (((IDictionary)dic).SyncRoot)
{
    // code
}

Graças a este fonte para a informação.

É claro que um dicionário thread-safe seria agradável, também, como já foi sugerido.

Outras dicas

Você pode bloquear em qualquer objeto que você deseja (exceto de valor tipos). É de recomendado que para bloqueio no objeto .SyncRoot.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top