7

我正在使用任务计划程序在 c# 应用程序中安排我的任务。我想我对这个图书馆有了基本的了解。

但是现在我停留在一个地方,我想创建一个自定义操作,该操作将按设定的时间表执行。就像内置操作,EmailAction(它将按设定的时间表发送邮件),ShowMessageAction(它将显示警报消息) schedule ),我想创建一个操作来运行我的 c# 代码,并且该代码会将一些数据保存到我的数据库中。

我尝试过的是:我创建了一个继承Action的类CustomAction,例如:

public class NewAction : Microsoft.Win32.TaskScheduler.Action
{
    public override string Id
    {
        get
        {
            return base.Id;
        }
        set
        {
            base.Id = value;
        }
    }

    public NewAction()
    {
    }
}

这是我的任务调度程序代码:

    ..  
    ... 
    // Get the service on the local machine
    using (TaskService ts = new TaskService())
    {
        // Create a new task definition and assign properties
        TaskDefinition td = ts.NewTask();
        td.RegistrationInfo.Description = "Does something";

        // Create a trigger that will fire the task at this time every other day
        TimeTrigger tt = new TimeTrigger();

        tt.StartBoundary = DateTime.Today + TimeSpan.FromHours(19) + TimeSpan.FromMinutes(1);
        tt.EndBoundary = DateTime.Today + TimeSpan.FromHours(19) + TimeSpan.FromMinutes(3);
        tt.Repetition.Interval = TimeSpan.FromMinutes(1);

        td.Triggers.Add(tt);

        // Create an action that will launch Notepad whenever the trigger fires
        td.Actions.Add(new NewAction());   <==========================

        // Register the task in the root folder
        ts.RootFolder.RegisterTaskDefinition(@"Test", td);

        // Remove the task we just created
        //ts.RootFolder.DeleteTask("Test");
    }
    ...
    ....

在线(由箭头指向)我得到了异常:

值不在任务调度程序的预期范围内

我不确定我想要实现的目标是否可能,如果有可能,请指导我正确的方向?

4

1 回答 1

1

根据我对你问题的理解。我已经实现了同样的事情,但我使用了“Quartz”调度程序而不是“任务调度程序”。这很容易实现。也许你也可以试试这个。

参考:http: //quartznet.sourceforge.net/tutorial/

如果我错了,请纠正我。

于 2013-04-13T14:35:15.463 回答