Мне ничего не известно ни в ОС, ни в Framework, которые радикально изменили бы планирование потоков в существующем приложении.Самый большой риск, который я предвижу, заключается в том, что новые процессоры, вероятно, будут работать быстрее, чем те, на которых вы сейчас находитесь (более новые обычно равняются быстрее), и это изменит количество вашего кода, который может выполняться в каждом отрезке времени, который дается вашему процессу.Если один поток переходит в состояние ожидания, для других потоков будет доступно больше времени.Любые существующие ошибки неактивного потока могут проявляться чаще в результате таких изменений синхронизации.Или вы можете продолжать везти.Вы не упомянули об этом, но если вы переходите на многоядерное оборудование в первый раз, вы почти наверняка увидите больший параллелизм (и, следовательно, риск коллизии) внутри вашего процесса.
Для смягчения последствий на самом деле нетХорошее средство, кроме проверки общих данных / кода и надлежащей защиты всего, к чему можно получить доступ одновременно.Если вы столкнетесь с катастрофическими проблемами при тестировании (вы планируете выполнить полную нагрузку и регресс до развертывания, верно?), Вы могли бы рассмотреть какую-то «большую блокировку» в верхней части ваших потоков или соответствующие функции, чтобы код риска не мог пересекаться.дорожки со своими сверстниками.Это, вероятно, снизит производительность, но высокопроизводительный код, который постоянно падает, в любом случае не очень полезен.