這個類實現了程式退出能重啟,但是程式停止執行彈出對話方塊,程序並沒有退出卻無法重啟。希望有好建議處理這個bug的朋友提出你們的寶貴意見。
原始碼如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.diagnostics;
using system.threading;
using system.runtime.interopservices;
public
class processwatcher
}if (count == 0) return
0; if (count == processpath.length) return
1; return
2; }
////// 啟動守護
/// ///
///等待時間
///public
intwatchstart(int sleeptime)
////// 關閉守護
//////
public
intwatchstop()
catch
return
0; }
////// 守護執行緒,死迴圈
///private
void
watch()
}thread.sleep(watchwaitingtime*1000);}}
////// 全部重啟,如果已經啟動則先關閉
///public
void
startall()
}///
/// 關閉所有守護程序
///public
void
stopall()
}///
/// 程序狀態
/// 1 顯示介面
/// 2 影藏介面
/// 3 重啟
/// 4 停止
//////
///public
void
setprocessstate(int state,string name)
break;}}
}///
/// 判斷某個執行緒是否存在
//////
執行緒名字
///public boolean processisalive(string name)
}return
false;
}///
/// 顯示窗體
//////
窗體控制代碼
///0 隱藏,1顯示
/// [dllimport("user32.dll", entrypoint = "showwindow", setlasterror = true)]
static
extern
bool showwindow(intptr hwnd, uint ncmdshow);
public
class myprocess
////// 程序名字
///public
string name
}///
/// 程序路徑
///public
string path
}///
/// 程序狀態
//////
public boolean isalive()
//catch
// }
////// 啟動,如果已經啟動,則關閉後再啟動
///public
void
start()
////// 關閉
///public
void
stop()
catch
}///
/// 顯示
///public
void
show()
else}}
////// 隱藏
///public
void
hide()
}///
/// 獲取程序
//////
private process process()
return
null;
}///
/// 鎖
///readonly
static readerwriterlockslim _rw = new readerwriterlockslim();
////// 寫日誌檔案
//////
public
static
void
writelog(string str_msg)}}
}
簡單看門狗
watch dog 設計原因 為了在系統異常的時候可以讓系統重啟復位 看門狗實際上是個定時器,系統正常的時候會定時給定時器復位,當系統異常的時候定時器沒有復位,到點了就傳送reset訊號然後把整個系統給reset了。為什麼要關掉watch dog?為什麼要關看門狗?一般cpu設計,在cpu啟動後看門...
linux簡單易用的看門狗程式
看門狗程式是通過 餵狗 的形式不停的給watchdog寫入資料,一旦在一定的時間內沒有寫入,watchdog就會認為程式發生了崩潰,它能夠直接出發晶元復位,讓linux系統進行重啟。在實際的專案中具有重要的作用。void feed watchdog int timeout 20 ioctl wd f...
python實現的看門狗程式
看門狗通常是用於監控程序是否結束,如果被監控程序結束則會被重啟。如下 import os,subprocess,shlex,sys print 輸入要啟動的程序的名字 包括路徑 commandline input args shlex.split commandline while true pri...