@Oxoron
Шарпер

Как выстроить приложение .NET с большим числом циклично изменяющихся элементов?

Добрый день.
Делаю небольшую игрушку на dotNet, в ней фигурируют однотипные элементы (порталы). Каждый портал живет в цикле активация\дезактивация, у каждого свое время жизни\простоя. При активации\дезактивации происходит некоторое событие. Какую архитектуру использовать для системы?
Цепляться к таймеру сотней порталов и проверять на каждом тике, пора ли переключать какие-либо элементы?
Создать метод, вызывающий смену статуса через n секунд, и вызывать его в новом потоке в конце себя?
Создать отсортированный по времени список ожидаемых изменений, и проверять на каждом тике таймера, пора ли менять первый портал?
Количество порталов ориентировочно не более 1000.
  • Вопрос задан
  • 2220 просмотров
Пригласить эксперта
Ответы на вопрос 2
Neuroware
@Neuroware
Программист в свободное от работы время
создать класс портала, в классе при его создании запускать task или thread в котором будет Thread.Sleep в соответствии с циклами после активации можно использовать event или производить обработку внутри объекта силами таски. При таком подходе легко потянет в сотнях тысяч не говоря о тысяче.
Ответ написан
lam0x86
@lam0x86
В RX есть отличный набор классов с общим интерфейсом IScheduler, которые позволяют планировать задачи на исполнение в нужное время и с нужным интервалом. В Вашем случае подойдёт TaskPoolScheduler.
Но вообще, в играх часто используют подход с обычным циклом, в котором происходит обработка очередного игрового кадра. На каждой итерации определяется игровое время, и на его основе обрабатываются события.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы