c#定時(shí)運(yùn)行程序分享(定時(shí)程序)
1)在我們的項(xiàng)目中添加引用文件:TaskSchedulerEngine.dll(dll定義了一個(gè)ITask接口,定義了兩個(gè)方法Initialize和HandleConditionsMetEvent);
2)創(chuàng)建一個(gè)定時(shí)觸發(fā)的類:SyncTask.cs(類名自己隨便定義),該類必須實(shí)現(xiàn)接口 ITask。具體代碼如下:
public class SyncTask : ITask
{
//接受傳遞過來的參數(shù)的變量
private string configName;
/// <summary>
/// 具體操作的代碼
/// </summary>
public void HandleConditionsMetEvent(object sender, ConditionsMetEventArgs e)
{
try
{
// 此處為具體的操作
}
catch (Exception ex)
{
//拋出異常,記錄錯(cuò)誤日志
}
}
/// <summary>
/// 初始化
/// </summary>
/// <param name="schedule"></param>
/// <param name="parameters">參數(shù)(該參數(shù)在定時(shí)觸發(fā)設(shè)置時(shí)傳遞)</param>
public void Initialize(ScheduleDefinition schedule, object parameters)
{
//通過傳遞過來的參數(shù)來初始化變量
configFileName = parameters.ToString();
try
{
//初始化的具體代碼
}
catch (Exception e)
{
//拋出異常,記錄錯(cuò)誤日志
}
}
}
3)配置app.config文件,配置文件的參數(shù)設(shè)置說明:
a. <at></at>是一個(gè)Task,如果不同的時(shí)間觸發(fā)不同的程序,則需要設(shè)置多個(gè)<at>; name:就是每個(gè)<at>的名字,可以根據(jù)自己的需要隨便起名; month:該Task在哪個(gè)月份觸發(fā),* 表示每個(gè)月都觸發(fā) ;dayofMonth:每個(gè)月的幾號(hào)觸發(fā),* 表示每天;dayOfWeek:每周幾觸發(fā),* 表示每天都觸發(fā);hour:每天的幾點(diǎn)觸發(fā),* 表示每小時(shí)觸發(fā)一次;minute:每小時(shí)的幾分鐘觸發(fā),58表示每小時(shí)的58分觸發(fā);second:每分鐘的幾秒觸發(fā)。
b. <task>是需要觸發(fā)的類,type:"需要觸發(fā)的類所在的詳細(xì)地址(項(xiàng)目名.文件夾名.類名),項(xiàng)目名,Version,Culture,PublicKeyToKen",parameters:需要傳遞的參數(shù),如果不傳遞參數(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)主程序來開啟定時(shí)程序:
SchedulerRuntime.StartWithConfig();
OK,到現(xiàn)在為止,一個(gè)完整的定時(shí)程序就寫完啦。
- c#定時(shí)器使用示例詳解
- C#定時(shí)器實(shí)現(xiàn)自動(dòng)執(zhí)行的方法
- c#一個(gè)定時(shí)重啟的小程序?qū)崿F(xiàn)代碼
- ASP.NET(C#) 定時(shí)執(zhí)行一段代碼
- C#實(shí)現(xiàn)判斷一個(gè)時(shí)間點(diǎn)是否位于給定時(shí)間區(qū)間的方法
- C#多線程學(xué)習(xí)之(五)使用定時(shí)器進(jìn)行多線程的自動(dòng)管理
- c#定時(shí)器和global實(shí)現(xiàn)自動(dòng)job示例
- C# 定時(shí)器定時(shí)更新的簡單實(shí)例
- c# 在windows服務(wù)中 使用定時(shí)器實(shí)例代碼
- windows下C#定時(shí)管理器框架Task.MainForm詳解
相關(guān)文章
Unity編輯器資源導(dǎo)入處理函數(shù)OnPreprocessAudio用法示例
這篇文章主要為大家介紹了Unity編輯器資源導(dǎo)入處理函數(shù)OnPreprocessAudio用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
ListView用法中與滾動(dòng)相關(guān)的需求實(shí)現(xiàn)
這篇文章主要介紹了ListView用法中與滾動(dòng)相關(guān)的需求實(shí)現(xiàn),獲取并設(shè)置ListView的滾動(dòng)位置,以及獲取滾動(dòng)位置處的項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
C#實(shí)現(xiàn)PDF合并的項(xiàng)目實(shí)踐
有時(shí)我們可能會(huì)遇到需要的資料或教程被分成了幾部分存放在多個(gè)PDF文件中,本文主要介紹了C#實(shí)現(xiàn)PDF合并的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
DevExpress實(shí)現(xiàn)TreeList向上遞歸獲取符合條件的父節(jié)點(diǎn)
這篇文章主要介紹了DevExpress實(shí)現(xiàn)TreeList向上遞歸獲取符合條件的父節(jié)點(diǎn),需要的朋友可以參考下2014-08-08
C# 復(fù)制與刪除文件的實(shí)現(xiàn)方法
這篇文章主要介紹了C# 復(fù)制與刪除文件的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-10-10
C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句實(shí)例代碼
這篇文章主要介紹了C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句實(shí)例代碼,需要的朋友可以參考下2018-02-02

