Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение
У меня есть пара замечаний:
Во-первых переименуйте хотя бы контекст, потому что название в 55 символов не читается.
Во-вторых Вас должен был напрячь тот факт, что для создания ограничения уникальности (п. 9) приходится в 2х местах вручную добавлять код (а в ModelSnapshot особенно осторожно). Ограничение надо было добавить в модель в контексте, перегрузив метод DbContext::OnModelCreating и потом создать миграцию:
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Entity<City>()
                .HasIndex(I => I.Name)
                .IsUnique();
        }
Для себя взял простое правило и другим советую: использовать кортежи и тому подобные анонимные структуры только в приватных методах.
Могу посоветовать книгу «Concurrency in C# Coockbook» by Stephen Cleary. Есть на известном сайте (только что проверил). У меня издание 2014 и все перечисленное там до сих пор актуально.
Один await в потребителе в консольном приложении уже не гарантирует, что вы получите тот же Thread Id.
Я так понял, что задача уведомить все ожидающие потоки, которые запросили AutoResetEvent из пула? Просто не вижу причин строить все это на set-reset event'ах, когда есть Monitor, который работает гораздо быстрее.
Какого поведения ожидаете в случае, если источник эмитит собщение до того, как поток-потребитель обработал предыдущее? И еще вижу в коде привязку к экземпляра AutoResetEvent к ThreadId, это опасно, она как-то используется?
Неоднократно встречал эту информацию в разных книжках прямо в определении того, что такое константа в clr и в голову не приходило ставить его под сомнение. Когда появились параметры со значениями по умолчанию, то принцип их работы и поведение так же были описаны. Мне кажется этот факт не стоит выносить дальше помещения, где коллеги-разработчики обсуждают новые фишечки языка. Копипастер статью скорее всего не встретит, он обитает на stackexchange, где и скопирует кусок кода про значения по умолчанию.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность