Obrona przed warunkami wyścigu w System.Collections.Concurrent.ConcurrentDictionary

.NET ConcurrentDictionary jest podatny na warunki wyścigu, które mogą spowodować nieoczekiwane dane, jak wyjaśnionona dole tego artykułu MSDN. Zakładam, że istnieje kilka czynników, które należy wziąć pod uwagę.

P: Jak powinienem napisać kod, który nie jest podatny na warunki wyścigu, które mogą spowodować utratę danych?

W moim scenariuszu mam strumień wejściowy, który ma zawsze rosnący indeks (n ++). Moja myśl jest taka, że ​​mógłbymwykryć brakujące dane jeśli wystąpi sytuacja wyścigu i wyślij ją ponownie. Z drugiej strony, może być lepszy sposób na zrobienie tego, czego nie znam.

questionAnswers(1)

yourAnswerToTheQuestion