Frage

Wie beende ich ein Verfahren nach sagen 2 oder 3 Minuten sehen Sie den folgenden Code:

 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);
        }



    }
}

so mag ich, dass die IE-Fenster nach 2 Minuten geschlossen

War es hilfreich?

Andere Tipps

ein System.Threading.Timer verwenden und liefern eine Timercallback (die Ihre process.Kill enthält) zurück nach 2 Minuten aufgerufen werden. Siehe das Beispiel hier

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

Edit:. Jons Lösung ist einfacher .. weniger Arten .. keine Entsorgung reqd

Sie sollten mit Windows Service versuchen, statt einer Konsolenanwendung. Windows-Dienste haben iterative Lifecycle so dass diese leicht eine Zeitsteuerung in Windows-Dienst erreicht werden kann. Lassen Sie den Timer-Tick in einem Intervall und führen gewünschte Aktion auf bestimmten Zeitintervallen.

Natürlich können Sie Timer-Steuerung mit einer Konsolenanwendung verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top