Мы определили точку доступа в нашем коде, используя CCR timers. Похоже, что если мы ставим в очередь много тысяч таймеров, что код страдает от терминального замедления.Наиболее подходящий .net Таймер для планировщика
Исправление состоит в том, чтобы выбрать скорейший запланированный элемент и установить таймер для этого события. Когда он стреляет, мы повторяем. Таким образом, мы задерживаем только один интервал таймера за раз.
Что мы сейчас находим, так это то, что экземпляр SortedList, который мы используем для управления запланированными элементами, записывается с весом абстракций из списка.
У всех таймеров .net страдает проблема увеличения использования ЦП с количеством выставленных элементов или есть более интеллектуально написанная.
В качестве альтернативы, существует ли более подходящая структура данных для хранения наших запланированных элементов в упорядоченном режиме, который поддерживает быструю вставку и быстрое удаление из передней части списка?
Но тогда ему придется вручную сортировать, что может быть не так уж плохо для его конкретного случая, так что это достойный вариант. – McKay
Я изучаю использование планировщика. Я убежден, что все предметы представлены в хронологическом порядке, так что это действительно может быть лучшим решением. – spender