Pergunta

Estou usando um ConcurrentDictionary para armazenar linhas de log e, quando preciso exibi-las ao usuário, chamo ToList() para gerar uma lista.Mas o estranho é que alguns usuários recebem as linhas mais recentes primeiro na lista, enquanto deveriam logicamente ser as últimas.

Isso ocorre porque o ConcurrentDictionary não garante uma ordem persistente na interface IEnumerate ou qual pode ser o motivo?

Foi útil?

Solução

Não ConcurrentDictionary (e Dictionary<T> aliás) não garante a ordem das chaves na lista.Você terá que usar um tipo de dados diferente ou realizar a classificação sozinho.Para código não simultâneo você usaria SortedDictionary<T>, mas não acredito que exista um análogo nas coleções simultâneas.

Outras dicas

não.A ordem da lista do ConcurrentDictionary não é garantida, as linhas podem sair em qualquer ordem.

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