C#编程:在一天中固定的时间处理某件事?如何处理?

比如固定时间是:10:10每天到这个时间就触发一个事件去处理别的事情,该怎么写?我说的是C#C/S程序如何实现,如果用windows服务程序,我还用问吗?如果定义一个Ti... 比如固定时间是:10:10
每天到这个时间就触发一个事件去处理别的事情,该怎么写?
我说的是C# C/S程序如何实现,如果用windows服务程序,我还用问吗?

如果定义一个Timer,把Timer的时间间隔设置为1,即每分钟读取系统时间进行比较,这样是不是会占有大量系统资源啊
展开
 我来答
谈指菩提
推荐于2016-01-28 · TA获得超过2405个赞
知道大有可为答主
回答量:1073
采纳率:0%
帮助的人:1867万
展开全部
每分钟触发一次不会占用大量资源,因为你只是判断一下当前时间是否就是指定时间,又没有执行其他操作。CPU计算量可以忽略,而且又没有请求新的内存空间。

当然你要是觉得这样做太频繁了,可以在程序启动的时候先判断一下当前的时间,然后根据当前时间和指定时间之间的时间差指定Timer的interval,但这样可能导致少量的误差,因为Timer的interval不是十分精确的。
———————————————————————————
用VS创建一个Windows Service项目,具体的可以搜索C# Sevice(最近我发的给链接的回答老被百度知道吃了,所以就不直接给链接了……)。这样就能保证你的程序始终在后台执行。
至于固定时间处理,就用Timer,每分钟或者每小时判断一次当前时间,如果到了指定时间就执行,否则调整Timer的Tick间隔。

不过这种方法要求你的程序比较强壮,否则一次出错,以后就无法执行了,而且还要考虑资源的释放回收的问题。而如果用计划任务就比较灵活,一次出错不会影响下次执行,而且每次执行结束就关闭程序,不大会有资源占用方面的问题。
jobiner
2010-05-26 · TA获得超过158个赞
知道答主
回答量:173
采纳率:0%
帮助的人:144万
展开全部
没有现成的代码,给你建议吧:
这种固定时间或者固定间隔时间的任务你可以用WindowsService去实现,在C#中有这种项目类型,你之间建一个WindowsService项目,实现你的需求,然后部署(至于WindowsService你可以查找msdn中的相关文档)。
你可以构造一个类,去监听时间,并在某个时间点时触发事件。所以你可能还要学习使用委托、定义并触发事件。

这只是一个方向,任何一个小的实现,可包含很多可以挖掘的东西。

对问题补充的回答:
比较笨的方式是定义一个Timer,把Timer的时间间隔设置为1,即没分钟读取系统时间,当 满足你的时间时,调用你的事件代码。

我觉得比较好的方式是:你可以构造一个类,去监听时间,并在某个时间点时触发事件。所以你可能还要学习使用委托、定义并触发事件。

其实不论你用WinForm程序还是WindowsService,实现的方式都是一样的,只是执行你的程序的方式不一样而已嘛。

现在的计算机硬件的资源对你一个Timer而言不会有任何你能感觉得到的资源,况且你也不是在每个Timer间隔都执行你的操作,大多少情况下仅仅是判断而已。当然使用Timer确实不那么优雅。所以建议你考虑使用事件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haoluogaga
2010-05-26 · TA获得超过2378个赞
知道小有建树答主
回答量:1265
采纳率:0%
帮助的人:1019万
展开全部
你说的C# 是指 B/S 还是C/S?

用时钟,每小时 或者每分钟 获取一次系统时间,然后拿出来跟你 自己规定的时间比较,如果相等 就调用方法 执行你想要的操作。

不会啊,再放几个也不会有什么影响,你这就是调用一个方法而已。如果你改1秒钟比较1000次可能会出问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
userusing
2010-05-26 · 超过14用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:44.5万
展开全部
有个datatime类获取系统时间,然后在一个定时器里判断当前系统时间是不是
10:10,是就触发一个事件。定时器频率设为1秒一触发就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mwtcz
推荐于2018-04-13 · TA获得超过1322个赞
知道小有建树答主
回答量:1367
采纳率:50%
帮助的人:1028万
展开全部
这个事,我觉得还是交给windows任务计划去做吧。如果你一定要c#去做,也建议你做个服务,服务里用timer,判断时间如果是在某个时间之后,就执行你的代码。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式