我正在使用非线程安全事件API。调用wait()
,并从该调用中分派事件处理程序。我希望能够在事件处理程序中“睡眠”一段时间。目前,我有一个调度程序,用于安排稍后调用的函数,并且有一点让我可以使用Scheduler.Sleeper(some_ienumerator)作为事件处理程序,所以我可以让时间片作为一种睡眠。有没有更好的解决方案?如果C#有Ruby风格的Fibers,我可以让调度器有一个我可以调用的Sleep()函数,而睡眠的东西可以在事件处理函数调用的函数中,而不是直接处理函数。鉴于缺乏易于使用的光纤,我还有什么可以做的吗?处理在单线程API中的事件处理程序中睡眠的最佳方法?
编辑澄清:我打电话wait(n)
其中n是一个时间量,并在该等待调用期间,API调用事件处理程序。我想在某些处理程序中“睡眠”的原因是因为这是针对游戏的,在点击某物之后,例如,物体可能会发光一秒钟。
也许这只是我,但我很难确定你想要做什么。我尽我所能不要在我写的任何代码中睡一觉。我确定他们有时间和地点,但我被他们咬了太多次,通常他们是因为某个时间问题而被放置的。他们变成了创可贴而不是解决方案。话虽如此,我仍然不清楚你的意图是基于你的描述,所以我可能会错过 – 2010-03-10 00:59:49