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,到如今為止,一個完全的准時法式就寫完啦,小同伴們,迎接年夜家提出名貴看法。