![]() |
1
2
你可以利用 Reactive Extensions 这样做:
这个
所以在上面的代码示例中, 做某事 即使事件被多次激发,也只能打印一次(一秒钟后)。
编辑
不幸的是,这仍然不能解决您的问题,因为无法等待事件,因此如果事件在
|
![]() |
2
1
我将使用计时器事件处理程序而不是您的dummeyEventHandler 只需调整定时器的频率,单位为毫秒秒,就可以了。您可以通过代码创建计时器,而不必将其作为控件添加到窗体中。我认为它在公共控件库中。 希望这有帮助。祝你好运。 |
![]() |
3
1
我花了更多的时间思考这个问题,我用我的第一个解决方案所做的假设是,事件是连续不断地发生的,当它可能只是在一段时间内触发一部分时间,然后在 真实的 问题。 在这种情况下,CPU绑定的任务只会在第一个事件触发时发生,然后如果事件在该CPU绑定的任务完成之前完成触发,则不会处理其余的事件。但你不想处理所有的问题,只想处理“最后一个”问题(不一定是实际的最后一个问题,只需要再处理一个“清理”问题)。 因此,我更新了我的答案,将出现频繁但间歇的用例(即事件突发然后安静)包括在内,正确的事情会发生,最终运行CPU绑定任务(但每次运行的CPU绑定任务仍不超过1个)。
|
![]() |
altwood · 任务未完成时[复制] 7 年前 |
![]() |
SharmaPattar · 包含和不包含异步[重复]的任务返回类型 7 年前 |
|
Tobi · 聚合和连接(内部、外部、左侧,…)使用TPL数据流? 7 年前 |
![]() |
nicks · 可以在不同的线程上等待任务完成吗?[副本] 7 年前 |