"Все время" я выделил, так как порой мы можем выполнить все необходимые операции над обычным словарем, а потом уже вернуть отсортированную через OrderBy версию. Из-за разницы между и нам не стоит поддерживать сортировку все время, если это важно только для вывода. Хотя возможно тут очевидный пример, который не вписывается в случаи применения SortedDictionary. Под подводными я отметил, что эффективность Dictionary зависит от качества хеш функции, и что при частом росте числа элементов, мы будем все время спотыкаться об изменение размера бакетов, что замедлит наши операции вставки. С SortedDictionary основным подводным является сложность выполнения операций, про которую я писал. Если под ожидаемыми подводными имелась ввиду потокобезопасность, пожалуй да, моя недоработка, сегодня допишу. Спасибо. Постараюсь так же более явно выделить подводные описанные выше.
Тут да, ошибся и не раскрыл разницу между Semaphore и SemaphoreSlim, прошу прощение. SemaphoreSlim не подойдет для межпроцессорной синхронизации, для этой задачи нужно использовать именно Semaphore.
Благодарю. В следующий раз постараюсь разобраться с редактором кода лучше. В этот раз текст из него выглядел крайне некрасиво, но подозреваю, что я что-то делал не так.
"Все время" я выделил, так как порой мы можем выполнить все необходимые операции над обычным словарем, а потом уже вернуть отсортированную через
и
нам не стоит поддерживать сортировку все время, если это важно только для вывода. Хотя возможно тут очевидный пример, который не вписывается в случаи применения
OrderBy
версию. Из-за разницы междуSortedDictionary
.Под подводными я отметил, что эффективность
Dictionary
зависит от качества хеш функции, и что при частом росте числа элементов, мы будем все время спотыкаться об изменение размера бакетов, что замедлит наши операции вставки. СSortedDictionary
основным подводным является сложность выполнения операций, про которую я писал.Если под ожидаемыми подводными имелась ввиду потокобезопасность, пожалуй да, моя недоработка, сегодня допишу. Спасибо.
Постараюсь так же более явно выделить подводные описанные выше.
Не приходилось сталкиваться на практике с этими классами, поэтому не написал, спасибо, изучу и их. По поводу
lock
не хотел углубляться в реализацию.Тут да, ошибся и не раскрыл разницу между
Semaphore
иSemaphoreSlim
, прошу прощение.SemaphoreSlim
не подойдет для межпроцессорной синхронизации, для этой задачи нужно использовать именноSemaphore
.Про
Lazy
слышал, но кроме как в учебных примерах не пользовался, поэтому забыл. Благодарю за напоминание.Благодарю. В следующий раз постараюсь разобраться с редактором кода лучше. В этот раз текст из него выглядел крайне некрасиво, но подозреваю, что я что-то делал не так.