Я использую API событий, не требующий обеспечения безопасности потоков. wait()
, и из этого вызова отправляются обработчики событий. Я хочу иметь возможность в обработчике событий какое-то время «спать». В настоящее время у меня есть планировщик, который планирует функции, которые должны быть вызваны позже, и есть небольшой прием, который позволяет мне использовать Scheduler.Sleeper (some_ienumerator) в качестве обработчика событий, поэтому я могу использовать временные интервалы как своего рода сон. Есть ли лучшее решение? Если бы в C # были Fibers в стиле Ruby, я мог бы сделать так, чтобы в планировщике была функция Sleep (), которую я мог бы вызывать, и материал сна мог бы находиться в функции, вызываемой обработчиком событий, а не непосредственно обработчиком. Что еще я могу сделать, учитывая отсутствие удобных в использовании волокон?
ИЗМЕНИТЬ ДЛЯ УТОЧНЕНИЯ: Я вызываю wait(n)
, где n - количество времени, и во время этого вызова ожидания API вызывает обработчики событий. Причина, по которой я хочу «спать» в некоторых из этих обработчиков, заключается в том, что это для игры, где после нажатия на что-либо объект может, например, на секунду светиться.