Question

comment puis-je tuer un processus après, disons, 2 ou 3 minutes, regardez le code suivant:

 class Program
{
    static void Main(string[] args)
    {

        try
        {
            //declare new process and name it p1
            Process p1 = Process.Start("iexplore", "http://www.google.com");
            //get starting time of process
            DateTime startingTime = p1.StartTime;
            Console.WriteLine(startingTime);
            //add a minute to startingTime
            DateTime endTime = startingTime.AddMinutes(1); 
            //I don't know how to kill process after certain time
            //code below don't work, How Do I kill this process after a minute or 2
            p1.Kill(startingTime.AddMinutes(2));                
            Console.ReadLine();


        }
        catch (Exception ex)
        {

            Console.WriteLine("Problem with Process:{0}", ex.Message);
        }



    }
}

donc je veux que la fenêtre d'IE soit fermée après 2 minutes

Était-ce utile?

La solution

Utilisez Process.WaitForExit avec un délai de deux minutes, puis appelez le Processus .Kill si WaitForExit a renvoyé false .

(Vous pouvez également envisager d'appeler CloseMainWindow au lieu de Kill , selon votre situation - ou du moins essayez-le d'abord, pour donner au processus davantage l'occasion de procéder à un arrêt ordonné.)

Autres conseils

Utilisez un System.Threading.Timer et fournissez un TimerCallback (qui contient votre processus.Kill) à rappeler après 2 minutes. Voir l'exemple ici

//p1.Kill(startingTime.AddMinutes(2));
using (var timer = new Timer(delegate { p1.Kill(); }, null, 2000, Timeout.Infinite))
{ 
  Console.ReadLine();  // do whatever
}

Modifier: la solution de Jon est plus simple ... moins de types .. pas d'élimination requise.

Vous devriez essayer avec Windows Service au lieu d’une application console. Les services Windows ont un cycle de vie itératif, ce qui peut être facilement réalisé à l'aide d'un contrôle du minuteur dans le service Windows. Laissez la minuterie se déclencher à intervalles réguliers et effectuez l'action souhaitée à certains intervalles de temps.

Bien sûr, vous pouvez également utiliser le contrôle du minuteur avec une application console.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top