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