1 Nugetからライブラリをダウンロードします:taskschedulerengine
作成者:pettijohn.com
2時限タスクを使用し、次のようにクラスを追加します。
public class DataSyncTask : ITask
{
private static Logger logger = LogManager.GetCurrentClassLogger();
public void HandleConditionsMetEvent(object sender, ConditionsMetEventArgs e)
{
try
{
// 此处为具体的操作
}
catch (Exception ex)
{
//抛出异常,记录错误日志
logger.Fatal(ex.Message, ex);
}
}
public void Initialize(ScheduleDefinition schedule, object parameters)
{
}
}
3構成ファイルノードの構成方法:<task type = "namespace。classname、namespace、.. ..
<taskSchedulerEngine>
<schedule>
<at name="TaskName" month="*" dayOfMonth="1" dayOfWeek="*" hour="1" minute="1" second="1" kind="Local">
<execute>
<task type="SheBaoGIS.DataSyncTask, SheBaoGIS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" parameters="" />
</execute>
</at>
</schedule>
</taskSchedulerEngine>
</configuration>
4)タイミングプログラムを開始するためのメインプログラム:
SchedulerRuntime.StartWithConfig();
追加する他のWebサイトの引用:
c#タイミング実行プログラム共有(タイミングプログラム)
更新日:2014年1月7日09:10:16作成者: コメントしたい
小さなタイミングプログラムを作成しました。タイミングがトリガーされたら、必要に応じて他のコードを実行できます。操作プロセスを共有します。皆さんのお役に立てば幸いです。
1)プロジェクトに参照ファイルを追加します。TaskSchedulerEngine.dll(dllはITaskインターフェイスを定義し、InitializeとHandleConditionsMetEventの2つのメソッドを定義します);
2)時間トリガークラスを作成します:SyncTask.cs(クラス名は自分で定義します)。このクラスはインターフェイスITaskを実装する必要があります。具体的なコードは次のとおりです。
public class SyncTask:ITask
{ //渡されたパラメーターを受け入れる変数 privatestring configName; /// <summary> ///特定の操作のコード /// </ summary> public void HandleConditionsMetEvent(object sender、ConditionsMetEventArgs e ) { try { //特定の操作は次のとおりです } catch(Exception ex) { //例外をスローしてエラーログを記録します } }
/// <summary>
///初期化
/// </ summary>
/// <param name = "schedule"> </ param>
/// <param name = "parameters">パラメータ(このパラメータはでトリガーされます設定中に渡されるタイミング)</ param>
public void Initialize(ScheduleDefinition schedule、object parameters)
{ //渡されたパラメーターで変数を初期化します configFileName = parameters.ToString(); try { //初期化の特定のコード } catch(例外e) { //例外をスローし、エラーログを記録します } } }
3)app.configファイル、構成ファイルのパラメーター設定の説明を構成します。
a。<at> </ at>はタスクです。異なるプログラムが異なる時間にトリガーされる場合は、複数の<at>を設定する必要があります。name:は各<at>の名前であり、必要に応じて名前を付けることができます。 ;月:タスクがトリガーされる月、*は毎月トリガーされることを意味します; dayofMonth:トリガーされる各月の日、*は毎日を意味します; dayOfWeek:トリガーされる曜日、*はトリガーされることを意味します毎日トリガー;時間:トリガー、*は1時間に1回トリガー、分:1時間に数分トリガー、58は1時間に58分、秒:1分に数秒トリガー。
b。<task>はトリガーされるクラスであり、次のように入力します: "トリガーされるクラスの詳細アドレス(プロジェクト名。フォルダー名。クラス名)、プロジェクト名、バージョン、カルチャー、PublicKeyToKen"、パラメーター:パラメーター渡されました。パラメータを渡さない場合は、「」に設定できます。
<taskSchedulerEngine>
<schedule>
<at name = "TaskName" month = "*" dayOfMonth = "*" dayOfWeek = "*" hour = "*" minutes = "58" second = "0" kind = "Local">
<実行>
<task type = "Test.Task.SyncTask、Test、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = null" parameters = "FtpConfig.xml" />
</ execute>
</ at>
</ schedule>
</ taskSchedulerEngine>
4)タイミングプログラムを開始するためのメインプログラム:
SchedulerRuntime.StartWithConfig();
OK、これまでのところ、完全なタイミングプログラムは終了しています。