![]() |
1
4
看看 Quartz.Net . 它是一个调度程序框架(最初用于Java)。 |
![]() |
2
4
可以说,您应该使用现有的框架,而不是使用自己的框架,但我不知道C#,所以我不知道可用的框架是什么。我通常对设置无数计时器的想法有点谨慎,因为有些环境不支持(或者不太支持)。因此,这一方案只需要一个。我不知道C#在这方面是否有任何问题,但这个方案可以很容易地安排在必要时使用O(1)RAM,这是无法克服的。 |
![]() |
3
3
这听起来像是Windows服务的经典案例。我认为VS2005/2008中存在Windows服务项目类型。该服务加上一个简单的数据库和一个前端应用程序,允许用户设置触发时间,这就是您所需要的。
|
![]() |
4
1
我已经按照这些思路编写了一些程序。 我建议#2。你所需要做的就是保留一个事件“到期”的时间列表,每X个时间(取决于你的分辨率)检查一次“现在”事件列表。如果可以保证列表已排序,并且列表上的每个事件都只到期一次,则可以进行一些优化。否则,如果您有重复事件,您必须确保覆盖窗口。我的意思是,如果您有一个事件在上午11:30到期,并且您每秒钟检查一次,那么您可能会在11:29:59检查,然后直到11:31:01才再次检查,因为CPU时间片的精度不高。因此,您需要确保其中的一个检查(11:29或11:31)仍然能够获得11:30的点击率,并且只有一个能够获得(即,您不会同时在11:29和11:31运行)。
|
![]() |
5
0
否则,您需要使用一个计时器类,计算距离第一个事件的时间。与调度器不同的是,这种方法允许运行进程发现新事件(并可能重置计时器)。 |
![]() |
6
0
#1的问题是,事件之前的毫秒数可能太大,无法存储在计时器的间隔中,并且随着事件数的增加,计时器的数量可能会变得不合适。
|
![]() |
OREO · 如何在不实际单击复选框的情况下选中它 1 年前 |
![]() |
Dan · 在元素外部设置html点击处理程序点击后立即触发 1 年前 |
![]() |
Mero · Svelte在父事件调用上调用新的嵌套事件处理程序 1 年前 |
|
iorice · usercontrol dll中的组件事件 1 年前 |
![]() |
Awin · 点击事件功能不适用于Vue组件 1 年前 |
![]() |
Kiwi · 将可共享的自定义数据添加到事件MS图形api 1 年前 |