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 に答える