基本上我需要我的應用程序從系統啓動直到系統關閉運行。我想通了以下方法:保持應用程序始終運行
- 創建MyApp.exe將和MyService.exe
- MyApp的應該安裝的MyService作爲服務
- 爲MyService應該在啓動時運行,並定期檢查,如果MyApp的運行。如果它不是啓動它。
這是我寫我的服務的代碼:
protected override void OnStart(string[] args)
{
while(true)
{
int processesCount =
Process.GetProcessesByName(Settings.Default.MyAppName).Count() +
Process.GetProcessesByName(Settings.Default.MyAppName + ".vshost").Count() +
Process.GetProcessesByName(Settings.Default.MyAppUpdaterName).Count();
if(processesCount==0)
{
//restore
var p = new Process { StartInfo = { FileName = Settings.Default.MyAppName, Arguments = "" } };
p.Start();
}
else
{
}
System.Threading.Thread.Sleep(3000);
}
}
- 我怎樣才能使其開始在Windows上安裝這個過程開始的?
- 我不確定OnStart方法中的這個無限循環是否是一個好主意。是嗎?
- 總體思路是否正確?
爲什麼不只是有myservice.exe? –
這只是對用戶不利。毫無意義的是,她當然會殺了你的服務。編寫真正有用的代碼,用戶返回並保持運行狀態。 –
@HansPassant這只是我老闆給我的要求。這個應用程序應該監視工作人員的效率,所以我必須讓他們很難關閉它或忘記開始它。 :) – gisek