如何防止另一个 Kill() 进程
本文关键字:进程 Kill 何防止 另一个 | 更新日期: 2023-09-27 18:33:35
在C#中,另一个(用户或程序)可以阻止Kill()进程?
我只想通过"关闭按钮"关闭我的应用程序并以其他方式阻止。
我已经使用 C# 多年了,但我从未遇到过这样的机制。您需要某种方法来告诉操作系统当前进程以某种方式受到保护,不会被杀死。实际上,这可能更像是一个操作系统问题,而不是一个语言问题。
唯一的方法是创建一个Windows服务而不是一个简单的进程。这样,我认为您可以在Windows服务选项卡中告诉它始终处于活动状态并根据需要执行它。例如:
protected override void OnStart(string[] args)
{
timer = new Timer();
timer.Interval = 12000; //Execute the process every 12 seconds
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Tick);
timer.Enabled = true;
}
private void timer_Tick(object sender, ElapsedEventArgs e)
{
try {
Runner.WriteErrorLog("Timer ticked and some job has ben called!");
Runner.Start();
Runner.WriteErrorLog("Job done!!");
}
catch (Exception ex)
{
Runner.WriteErrorLog("ERROR!!! " + ex.Message);
}
}
这不会阻止进程的终止,但它将使您能够读取日志并查找它是否已终止并重新启动它。