C# 在全天运行的程序上安排每日事件
我正在编写一个C#WinForms程序,希望它能在后台全天候运行。在一个XML文件中,我正在抽时间。例如:下午3:30:00。当我在解析后显示这一次时,它显示为2014年1月15日下午3:30:00C# 在全天运行的程序上安排每日事件,c#,events,timer,scheduled-tasks,C#,Events,Timer,Scheduled Tasks,我正在编写一个C#WinForms程序,希望它能在后台全天候运行。在一个XML文件中,我正在抽时间。例如:下午3:30:00。当我在解析后显示这一次时,它显示为2014年1月15日下午3:30:00 我的问题是,基于这个XML值,我怎样才能使它在每天下午3:30:00时,计时器对象或某物显示消息框或其他操作?您使用计时器的想法很好。您可以使用WinformsTimer或System.Timers.Timer。在本例中,我将参考System.Timers.Timer,因为我有一些代码可以作为这个答
我的问题是,基于这个XML值,我怎样才能使它在每天下午3:30:00时,计时器对象或某物显示消息框或其他操作?您使用
计时器的想法很好。您可以使用Winforms
Timer
或System.Timers.Timer
。在本例中,我将参考System.Timers.Timer
,因为我有一些代码可以作为这个答案的基础
无论如何,只需给它分配一个间隔
,并通过经过时间
触发一个事件即可。然后在经过的调用的代码中,输入操作代码。最后,在需要的地方启动计时器并尝试运行它
如果使用DateTime
保存文件数据,则需要创建一个到第二天的恒定毫秒数(不推荐),或者使用TimeSpan
s进行一些计算(提示:使用构造函数获取时间)。TimeSpan
包含一个名为“totalmillizes”的属性,您可以将该属性用作间隔
我希望这为您指明了正确的方向。您使用定时器的想法很好。您可以使用Winforms
Timer
或System.Timers.Timer
。在本例中,我将参考System.Timers.Timer
,因为我有一些代码可以作为这个答案的基础
无论如何,只需给它分配一个间隔
,并通过经过时间
触发一个事件即可。然后在经过的调用的代码中,输入操作代码。最后,在需要的地方启动计时器并尝试运行它
如果使用DateTime
保存文件数据,则需要创建一个到第二天的恒定毫秒数(不推荐),或者使用TimeSpan
s进行一些计算(提示:使用构造函数获取时间)。TimeSpan
包含一个名为“totalmillizes”的属性,您可以将该属性用作间隔
我希望这为您指明了正确的方向。您使用定时器的想法很好。您可以使用Winforms
Timer
或System.Timers.Timer
。在本例中,我将参考System.Timers.Timer
,因为我有一些代码可以作为这个答案的基础
无论如何,只需给它分配一个间隔
,并通过经过时间
触发一个事件即可。然后在经过的调用的代码中,输入操作代码。最后,在需要的地方启动计时器并尝试运行它
如果使用DateTime
保存文件数据,则需要创建一个到第二天的恒定毫秒数(不推荐),或者使用TimeSpan
s进行一些计算(提示:使用构造函数获取时间)。TimeSpan
包含一个名为“totalmillizes”的属性,您可以将该属性用作间隔
我希望这为您指明了正确的方向。您使用定时器的想法很好。您可以使用Winforms
Timer
或System.Timers.Timer
。在本例中,我将参考System.Timers.Timer
,因为我有一些代码可以作为这个答案的基础
无论如何,只需给它分配一个间隔
,并通过经过时间
触发一个事件即可。然后在经过的调用的代码中,输入操作代码。最后,在需要的地方启动计时器并尝试运行它
如果使用DateTime
保存文件数据,则需要创建一个到第二天的恒定毫秒数(不推荐),或者使用TimeSpan
s进行一些计算(提示:使用构造函数获取时间)。TimeSpan
包含一个名为“totalmillizes”的属性,您可以将该属性用作间隔
我希望这为您指明了正确的方向。这是一个控制台应用程序,每天在固定时间执行作业
using System;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
public static void Main()
{
Timer t = new Timer(TimerCallback, null, 0, 2000);
// Wait for the user to hit <Enter>
Console.ReadLine();
}
private static void TimerCallback(Object o)
{
Console.WriteLine("In TimerCallback: " + DateTime.Now);
DateTime s = DateTime.Now;
TimeSpan ts = new TimeSpan(23, 27, 0);
s = s.Date + ts;
if (DateTime.Now > s && !fired)
{
Console.WriteLine("Do the Job");
fired = true;
}
else if (DateTime.Now < s)
{
fired = false;
}
}
private static bool fired = false;
}
}
使用系统;
使用系统线程;
命名空间控制台应用程序1
{
班级计划
{
公共静态void Main()
{
计时器t=新计时器(TimerCallback,null,0,2000);
//等待用户点击
Console.ReadLine();
}
专用静态void TimerCallback(对象o)
{
WriteLine(“In-TimerCallback:+DateTime.Now”);
DateTime s=DateTime.Now;
TimeSpan ts=新的TimeSpan(23,27,0);
s=s.日期+ts;
如果(DateTime.Now>s&!已激发)
{
Console.WriteLine(“完成任务”);
激发=真;
}
else if(DateTime.Now
这是一个控制台应用程序,每天在固定时间执行作业
using System;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
public static void Main()
{
Timer t = new Timer(TimerCallback, null, 0, 2000);
// Wait for the user to hit <Enter>
Console.ReadLine();
}
private static void TimerCallback(Object o)
{
Console.WriteLine("In TimerCallback: " + DateTime.Now);
DateTime s = DateTime.Now;
TimeSpan ts = new TimeSpan(23, 27, 0);
s = s.Date + ts;
if (DateTime.Now > s && !fired)
{
Console.WriteLine("Do the Job");
fired = true;
}
else if (DateTime.Now < s)
{
fired = false;
}
}
private static bool fired = false;
}
}
使用系统;
使用系统线程;
命名空间控制台应用程序1
{
班级计划
{
公共静态void Main()
{
计时器t=新计时器(TimerCallback,null,0,2000);
//等待用户点击
Console.ReadLine();
}
专用静态void TimerCallback(对象o)
{
WriteLine(“In-TimerCallback:+DateTime.Now”);
DateTime s=DateTime.Now;
TimeSpan ts=新的TimeSpan(23,27,0);
s=s.日期+ts;
如果(DateTime.Now>s&!已激发)
{
Console.WriteLine(“完成任务”);