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

时间:2016-02-08 09:00:32

标签: c#

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

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

2 个答案:

答案 0 :(得分:2)

我已经使用C#多年了,而且我从未遇到过这种机制。您需要某种方式告诉操作系统当前进程以某种方式受到保护而不会被杀死。实际上,它可能更像是一个操作系统问题,而不是一个语言问题。

答案 1 :(得分:0)

唯一的方法是创建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);
        }
    }

这不会阻止您的流程终止,但它可以让您阅读日志并查找是否已终止并重新启动它。