程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> c#一個簡單的定時小程序

c#一個簡單的定時小程序

編輯:C#基礎知識

1)在我們的項目中添加引用文件:TaskSchedulerEngine.dll(dll定義了一個ITask接口,定義了兩個方法Initialize和HandleConditionsMetEvent);

2)創建一個定時觸發的類:SyncTask.cs(類名自己隨便定義),該類必須實現接口 ITask。具體代碼如下:

public class SyncTask : ITask
{
  //接受傳遞過來的參數的變量
  private string 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 (Exception e)
    {
          //拋出異常,記錄錯誤日志 
    }
  }
}    

3)配置app.config文件,配置文件的參數設置說明:

    a.  <at></at>是一個Task,如果不同的時間觸發不同的程序,則需要設置多個<at>; name:就是每個<at>的名字,可以根據自己的需要隨便起名; month:該Task在哪個月份觸發,* 表示每個月都觸發 ;dayofMonth:每個月的幾號觸發,* 表示每天;dayOfWeek:每周幾觸發,* 表示每天都觸發;hour:每天的幾點觸發,* 表示每小時觸發一次;minute:每小時的幾分鐘觸發,58表示每小時的58分觸發;second:每分鐘的幾秒觸發。

    b. <task>是需要觸發的類,type:"需要觸發的類所在的詳細地址(項目名.文件夾名.類名),項目名,Version,Culture,PublicKeyToKen",parameters:需要傳遞的參數,如果不傳遞參數可以設置為"" ;

<taskSchedulerEngine>
    <schedule>
      <at name="TaskName" month="*" dayOfMonth="*" dayOfWeek="*" hour="*" minute="58" second="0" kind="Local">
        <execute>
          <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,到現在為止,一個完整的定時程序就寫完啦,小伙伴們,歡迎大家提出寶貴意見。

  1. 上一頁:
  2. 下一頁: