最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#一個定時重啟的小程序?qū)崿F(xiàn)代碼第1/2頁

 更新時間:2008年09月20日 13:05:42   作者:  
今天有個朋友找我問有沒有一些能像Windows一樣計劃任務(wù)重啟的軟件,我也不清楚。他它說能讓我做一個給他它么?我考慮了一下,他的服務(wù)器都是有安裝.NET框架的,那可以用.NET來使下~~!
原理我像大家都很清楚,這里只說.NET(c#實現(xiàn))。服務(wù)器每次啟動或者重啟,都是沒登陸的。那意味著啟動項里不只能做,我就考慮到使用Windows服務(wù)。Windows服務(wù)在系統(tǒng)加載時候就會啟動所有服務(wù),把程序?qū)戇M里面應(yīng)該沒錯了。
需要重啟,那就要一個時間來效驗,寫法都有很多。我這里采用ini來存放。
Time 記錄要重啟的時間,驗證時間。
Day 用來累加天數(shù)。
復(fù)制代碼 代碼如下:

[Reboot]
Time=02:02:01
Day=3


使用System.Timers.Timer循環(huán)驗證時間(不知道始終對占用資源是否會太大)
復(fù)制代碼 代碼如下:

private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
if (DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") == retime)
{
Shoutdown.DoExitWin(0x00000002);
}
}


服務(wù)首次啟動初始化重啟的時間以及天數(shù),初始化時候讀取ini文件,把時間放進變量里,將天數(shù)累加3天。(減少讀寫I/O的開銷)
始終不停的循環(huán)驗證。
復(fù)制代碼 代碼如下:

protected override void OnStart(string[] args)
{
ini = new IniFile(AppDomain.CurrentDomain.BaseDirectory + "Current.ini");
time = ini.IniReadValue("Reboot", "Time");
day = ini.IniReadValue("Reboot", "Day");

retime = DateTime.Now.AddDays(double.Parse(day)).ToString("yyyy-MM-dd ") + time;

autoTimer.AutoReset = true;
autoTimer.Enabled = true;
autoTimer.Elapsed += Timer_Elapsed;
autoTimer.Start();
}


這里可以改造成用線程來做,我想應(yīng)該比這個會好。

放出一段自動備份SQLSERVER的代碼端,將后會發(fā)布。
復(fù)制代碼 代碼如下:

private readonly Dictionary<string, bool> cache =
new Dictionary<string, bool>();

private readonly IniFile ini = new IniFile(SysUtil.GetMapPath("Task.ini"));
private bool _flag;
private string day;
private string fHour;
private string fWeek;
private string hour;
private Thread timeThread;


protected override void OnStart(string[] args)
{
Go();
}

protected override void OnStop()
{
StopThread();
}

/// <summary>
/// 執(zhí)行
/// </summary>
public void Go()
{
day = DateTime.Now.ToString("yyyy-MM-dd");
fWeek = ini.IniReadValue("Task", "Week");
fHour = ini.IniReadValue("Task", "Hour");
RunThread();
}

/// <summary>
/// 執(zhí)行線程
/// </summary>
private void RunThread()
{
//這里開始線程
_flag = true;
timeThread = new Thread(ThreadTimer);
timeThread.Start();
}

/// <summary>
/// 停止線程
/// </summary>
private void StopThread()
{
_flag = false;
if (timeThread != null) timeThread.Abort();
}

/// <summary>
/// 線程方法
/// </summary>
public void ThreadTimer()
{
while (_flag)
{
if (fWeek == "") //按天
{
RunBackup();
}
else
{
// 按周
if (WeekSwitch(fWeek) == DateUtil.getWeek(DateTime.Now) && WeekSwitch(fWeek) != "")
{
RunBackup();
}
}
}
}

/// <summary>
/// 數(shù)據(jù)庫列表
/// </summary>
private DataTable GetTaskList()
{
DataSet ds = new DataSet();
ds.ReadXml(SysUtil.GetMapPath("Db.xml"));
return ds.Tables["DataSet"];
}

private void RunBackup()
{
if (!File.Exists(SysUtil.GetMapPath("Db.xml"))) return;

day = DateTime.Now.ToString("yyyy-MM-dd");

hour = DateTime.Now.ToString("HH");
if (hour.Equals(fHour))
{
if (!cache.ContainsKey(day)) cache.Add(day, false);

if (fWeek != "" && cache[day] == false)
{
if (WeekSwitch(fWeek) == DateUtil.getWeek(DateTime.Parse(day)))
{
StartWork();
cache[day] = true;
}
}
else
{
if (cache[day] == false)
{
StartWork();
cache[day] = true;
}
}
}

相關(guān)文章

  • C#實現(xiàn)簡單的Login窗口實例

    C#實現(xiàn)簡單的Login窗口實例

    這篇文章主要介紹了C#實現(xiàn)簡單的Login窗口,實例分析了C#顯示及關(guān)閉登陸Login窗口的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-08-08
  • C#獲得程序的根目錄以及判斷文件是否存在的實例講解

    C#獲得程序的根目錄以及判斷文件是否存在的實例講解

    今天小編大家分享一篇C#獲得程序的根目錄以及判斷文件是否存在的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • C#基于正則表達式抓取a標(biāo)簽鏈接和innerhtml的方法

    C#基于正則表達式抓取a標(biāo)簽鏈接和innerhtml的方法

    這篇文章主要介紹了C#基于正則表達式抓取a標(biāo)簽鏈接和innerhtml的方法,結(jié)合實例形式分析了C#使用正則表達式進行頁面元素的匹配與抓取相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • C# 二進制數(shù)組與結(jié)構(gòu)體的互轉(zhuǎn)方法

    C# 二進制數(shù)組與結(jié)構(gòu)體的互轉(zhuǎn)方法

    本文將和大家介紹 MemoryMarshal 輔助類,通過這個輔助類用來實現(xiàn)結(jié)構(gòu)體數(shù)組和二進制數(shù)組的相互轉(zhuǎn)換,對C# 二進制數(shù)組與結(jié)構(gòu)體的互轉(zhuǎn)方法感興趣的朋友一起看看吧
    2023-09-09
  • C#值類型、引用類型中的Equals和==的區(qū)別淺析

    C#值類型、引用類型中的Equals和==的區(qū)別淺析

    這篇文章主要介紹了C#值類型、引用類型中的Equals和==的區(qū)別淺析,本文分別對C#值類型和引用類型中的Equals和==做了講解和給出了實例,需要的朋友可以參考下
    2015-01-01
  • 教你創(chuàng)建一個帶診斷工具的.NET鏡像

    教你創(chuàng)建一個帶診斷工具的.NET鏡像

    本文編寫的初衷是因為在群里有很多小伙伴遇到生產(chǎn)環(huán)境性能問題的時候,.NET的runtime鏡像中沒有帶一些工具,安裝和使用起來很麻煩,所以分享一些我們公司內(nèi)部一些技巧,對.NET鏡像帶診斷工具相關(guān)知識感興趣的朋友一起看看吧
    2022-07-07
  • 雜談try-catch-finally異常處理

    雜談try-catch-finally異常處理

    這篇文章主要介紹了雜談try-catch-finally異常處理的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • C#?網(wǎng)域賬號(Domain)驗證的實現(xiàn)

    C#?網(wǎng)域賬號(Domain)驗證的實現(xiàn)

    本文主要介紹了C#?網(wǎng)域賬號(Domain)驗證的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • c#菜單動態(tài)合并的實現(xiàn)方法

    c#菜單動態(tài)合并的實現(xiàn)方法

    這篇文章主要介紹了c#菜單動態(tài)合并的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • listview控件實現(xiàn)點擊列表頭進行l(wèi)istview排序示例分享

    listview控件實現(xiàn)點擊列表頭進行l(wèi)istview排序示例分享

    這篇文章主要介紹了listview控件實現(xiàn)點擊列表頭進行l(wèi)istview排序示例分享,需要的朋友可以參考下
    2014-03-03

最新評論

泰兴市| 广东省| 宾川县| 河曲县| 万源市| 开阳县| 嘉义市| 邯郸市| 高邮市| 濉溪县| 镇赉县| 积石山| 基隆市| 大竹县| 平顶山市| 柳林县| 关岭| 封丘县| 绥化市| 邮箱| 靖西县| 兴义市| 姜堰市| 大荔县| 漳州市| 安宁市| 沐川县| 家居| 宝丰县| 安龙县| 安平县| 济南市| 陇川县| 北辰区| 莆田市| 石门县| 江达县| 苗栗县| 克什克腾旗| 连江县| 桂平市|