如何防止另一个 Kill() 进程

本文关键字:进程 Kill 何防止 另一个 | 更新日期: 2023-09-27 18:33:35

在C#中,另一个(用户或程序)可以阻止Kill()进程?

我只想通过"关闭按钮"关闭我的应用程序并以其他方式阻止。

如何防止另一个 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);
        }
    }

这不会阻止进程的终止,但它将使您能够读取日志并查找它是否已终止并重新启动它。