如何在特定时间,在C#中每天调用一个方法?我已经搜索过了,并找到了关于Quartz.net的答案。但对我的项目来说似乎太大了。我想要一个等价的解决方案,但更简单,(充其量)是在代码中(不需要外部库)。我如何在特定的时间每天调用一个方法?我需要补充一些有关这方面的信息:最简单的(也是丑陋的)方法,就是每秒钟/分钟检查一次时间,并在正确的时间调用该方法。我想要一种更有效的方法来做到这一点,不需要经常检查时间,我可以控制工作是否完成。如果方法失败(由于任何问题),程序应该知道如何写入日志/发送电子邮件。这就是为什么我需要调用一个方法,而不是调度一个作业。我找到了这个解决方案用Java在固定时间调用方法在爪哇。在C#中有类似的方式吗?编辑:我做过这个。我在voidmain()中添加了一个参数,并创建了一个BAT(由WindowsTaskScheduler调度)来使用该参数运行程序。程序运行,完成工作,然后退出。如果一个工作失败,它可以写日志和发送电子邮件。此方法非常适合我的需求:)
3 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
创建一个控制台应用程序来完成您想要的任务 使用Windows“ “在需要运行控制台应用程序时执行它的功能。
最新情况:
在. Windows窗体
应用程序,你可以点击 事件,并检查是否达到了一天中调用方法的时间。只有当你的应用程序不忙于其他事情时,才会调用这个方法。快速检查一下你的目标时间是否已经达到,不应该给你的应用程序带来太大的压力,我想. 在ASP.NETWeb应用程序中,有一些方法可以“模拟”发送预定事件-请查看以下内容 当然,您也可以在任何.NET应用程序中简单地“滚动您自己的”-请查看以下内容 用于示例实现
更新#2
using System.Timers;const double interval60Minutes = 60 * 60 * 1000; // milliseconds to one hourTimer checkForTime = new Timer(interval60Minutes);checkForTime.Elapsed += new ElapsedEventHandler(checkForTime_Elapsed);checkForTime.Enabled = true;
void checkForTime_Elapsed(object sender, ElapsedEventArgs e){ if (timeIsReady()) { SendEmail(); }}
- 3 回答
- 0 关注
- 974 浏览
添加回答
举报
0/150
提交
取消