Как завершить процесс или программу через заданный интервал времени на C#

Приветствую всех сегодня я покажу как можно убивать процессы через определенное время. У многих новичков, да и любителей писать разные читы, программы шутки, возникает такой вопрос, а как все это реализовать? Есть множество способов, к примеру бесконечный цикл с помощью while(true)  происходит проверка условий запущен ли процесс — программа, и если да то завершить. Однако есть еще и другие способы к через события, что то же очень интересно. Но сегодня я покажу несколько из них , который вы вряд ли встречали, такую реализацию:

  1. Вариант
  class Program
    {
        static void Main()
        {
            Timer timer = new Timer(new Proc("Firefox").Closed, "Завершили процесс: ", 0, 60000);
            Console.ReadKey();
        }
    }

    class Proc
    {
        readonly string process;
        public Proc(string process)
        {
            this.process = process;
        }

        public void Closed(object o)
        {
            foreach (var process in Process.GetProcessesByName(process))
            {
                process.Kill();
                Console.WriteLine("{0} {1}",o,process);
            }
        }
      
    }

2. Варинат

class Program
    {
        static void Main(string[] args)
        {
            Proc p = new Proc("firefox",1);
            p.Closed();

        }


        class Proc
        {
            readonly string process;
            readonly int minute;

            public Proc(string process, int minute)
            {
                this.process = process;
                this.minute = minute;
            }

            public void Closed()
            {
                DateTime end = DateTime.Now;
                end = end.AddMinutes(minute);
                
                while (true)
                {
                    DateTime start = DateTime.Now;
                    TimeSpan f = end - start;

                    if (f.Seconds == 0)
                    {
                        foreach (var process in Process.GetProcessesByName(process))
                        {
                            process.Kill();
                            
                        }
                        end = end.AddMinutes(minute);
                    }
                }
            }
        }
    }

 

Обновлено: 29.06.2018 — 15:28

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.