在特定时间重新启动windows服务
本文关键字:windows 服务 重新启动 定时间 | 更新日期: 2023-09-27 18:24:39
我创建了一个服务,它在后台的某个时间执行exe。我想设置一个计时器,使服务每天都在同一时间执行exe。。怎么能做到。。???以下是我在服务类中编写的代码:
public partial class Service1 : ServiceBase
{
string time = DateTime.Now.ToShortTimeString();
Process p = new Process();
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(DoWork);
bw.RunWorkerAsync();
}
private void DoWork(object sender, DoWorkEventArgs e)
{
p.StartInfo = new ProcessStartInfo(@"c:'windows'ccm'ccmeval.exe");
if (time == "6:55 PM")
{
p.Start();
p.WaitForExit();
base.Stop();
}
}
protected override void OnStop() { }
假设您想在每天早上6:30运行每个任务
var dtTimeToStartAt = DateTime.Today.AddHours(6).AddMinutes(30);
dtTimeToStartAt = DateTime.Now > dtTimeToStartAt ? dtTimeToStartAt.AddDays(1) : dtTimeToStartAt;
var timer = new System.Threading.Timer(x => YourCallbackMethod(), new object() /*not much use*/,
dtTimeToStartAt.Subtract(DateTime.Now), new TimeSpan(24, 0, 0));