1

現在、10分ごとに実行されていると思われるサービスがありますが、毎日午後7時に実行したいのですが、何を変更する必要がありますか?...。

 private Timer _timer;
    private DateTime _lastRun = DateTime.Now;

    protected override void OnStart(string[] args)
    {
        _timer = new Timer(10 * 60 * 1000); // every 10 minutes??
        _timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
    }

    private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {

        if (_lastRun.Date < DateTime.Now.Date)
        {
            // stop the timer 
            _timer.Stop();               

            try
            {
                SmartImportService.WebService.WebServiceSoapClient test = new WebService.WebServiceSoapClient();
                test.Import();
            }
            catch (Exception ex) { }

            _lastRun = DateTime.Now;
            _timer.Start();
        }
    }
4

2 に答える 2

1

Windowsサービスは、継続的に実行されるタスクです。指定された時間に実行する必要があるものを探している場合は、スケジュールされたタスクその他の適切なリンクを記述してください。

于 2012-04-17T16:02:30.967 に答える
1

交換:

if (_lastRun.Date < DateTime.Now.Date)
{
}

と:

DateTime startAt = DateTime.Today.AddHours(19);
if (_lastRun < startAt && DateTime.Now >= startAt)
{
}

おそらくトリックを行います。しかし、すでに提案されているように、スケジュールされたタスクを使用したいと思います

于 2012-04-17T16:02:48.700 に答える