давно используемое программное обеспечение, развернутое на многих серверах, имеет проблему при новой установке. Кажется, это связано с Windows 2016 Server, но мы не уверены. Части программного обеспечения часто вызывают событие ManualResetEvent, например: _exitRequestEvent.WaitOne(1, false);
К сожалению, в серверной системе это занимает в 15 раз больше времени, чем в ноутбуке разработчика. Мы обновили dotnet Framework, дополнительно установили SDK и, наконец, Visual Studio, чтобы устранить различия между блокнотами разработчиков и Сервером. Без изменений. Также вызовы Monitor.Wait кажутся намного медленнее. У кого-нибудь есть подобный опыт?
Таргетфреймворк 4.6.2
Спасибо за подсказки, Фрэнк
_exitRequestEvent.WaitOne(1, false);
будет ждать, пока либо не будет сообщеноManualResetEvent
(другой частью вашего кода, вызывающего_exitRequestEvent.Set()
), либо 1 миллисекунда, в зависимости от того, что наступит раньше. Так вы говорите, что это занимает 15 мс? - person Gabriel Luci   schedule 14.11.2019while (true) { int start = Environment.TickCount; System.Threading.Thread.Sleep(2); int result = Environment.TickCount - a; }
на моем ноутбуке часто отображается 0, иногда 15, на сервере каждый раз 15, иногда больше. Для меня это выглядит так, что наименьшее время планировщика на сервере составляет 15 мс. - person abrams   schedule 15.11.2019