C#一個簡單的定時小程序?qū)崿F(xiàn)代碼
之前一直覺得定時程序好神秘,后來,當我自己真正寫了一個小的定時程序時,發(fā)現(xiàn)其實沒有想象中的那么難。下面,我分享一下我自己的操作過程,希望能對大家有幫助。
1)在我們的項目中添加引用文件:TaskSchedulerEngine.dll(dll定義了一個ITask接口,定義了兩個方法Initialize和HandleConditionsMetEvent);
2)創(chuàng)建一個定時觸發(fā)的類:SyncTask.cs(類名自己隨便定義),該類必須實現(xiàn)接口 ITask。具體代碼如下:
public class SyncTask : ITask
{
//接受傳遞過來的參數(shù)的變量
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">參數(shù)(該參數(shù)在定時觸發(fā)設置時傳遞)</param>
public void Initialize(ScheduleDefinition schedule, object parameters)
{
//通過傳遞過來的參數(shù)來初始化變量
configFileName = parameters.ToString();
try
{
//初始化的具體代碼
}
catch (Exception e)
{
//拋出異常,記錄錯誤日志
}
}
}
3)配置app.config文件,配置文件的參數(shù)設置說明:
a. <at></at>是一個Task,如果不同的時間觸發(fā)不同的程序,則需要設置多個<at>; name:就是每個<at>的名字,可以根據(jù)自己的需要隨便起名; month:該Task在哪個月份觸發(fā),* 表示每個月都觸發(fā) ;dayofMonth:每個月的幾號觸發(fā),* 表示每天;dayOfWeek:每周幾觸發(fā),* 表示每天都觸發(fā);hour:每天的幾點觸發(fā),* 表示每小時觸發(fā)一次;minute:每小時的幾分鐘觸發(fā),58表示每小時的58分觸發(fā);second:每分鐘的幾秒觸發(fā)。
b. <task>是需要觸發(fā)的類,type:"需要觸發(fā)的類所在的詳細地址(項目名.文件夾名.類名),項目名,Version,Culture,PublicKeyToKen",parameters:需要傳遞的參數(shù),如果不傳遞參數(shù)可以設置為"" ;
<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,到現(xiàn)在為止,一個完整的定時程序就寫完啦,小伙伴們,歡迎大家提出寶貴意見。
相關文章
Unity3D游戲開發(fā)數(shù)據(jù)持久化PlayerPrefs的用法詳解
在本篇文章里小編給大家整理了關于Unity3D游戲開發(fā)之數(shù)據(jù)持久化PlayerPrefs的使用的相關知識點內(nèi)容,需要的朋友們參考下。2019-08-08
Unity利用材質(zhì)自發(fā)光實現(xiàn)物體閃爍
這篇文章主要為大家詳細介紹了Unity利用材質(zhì)自發(fā)光實現(xiàn)物體閃爍,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
c# 使用模式匹配以及 is 和 as 運算符安全地進行強制轉(zhuǎn)換
這篇文章主要介紹了c# 使用模式匹配以及 is 和 as 運算符安全地進行強制轉(zhuǎn)換,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-10-10

