Pregunta

¿Cómo elimino un proceso después de 2 o 3 minutos? Mira el siguiente código:

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



    }
}

así que quiero que la ventana de IE se cierre después de 2 minutos

¿Fue útil?

Solución

Utilice Process.WaitForExit con un tiempo de espera de dos minutos y luego llame a Process .Kill si WaitForExit devuelve false .

(También puede considerar llamar a CloseMainWindow en lugar de Kill , dependiendo de su situación, o al menos inténtelo primero, para darle al proceso más oportunidades de realizar un cierre ordenado.)

Otros consejos

Use un System.Threading.Timer y proporcione un TimerCallback (que contiene su proceso. Kill) para que se le devuelva la llamada después de 2 minutos. Consulte el ejemplo aquí

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

Editar: la solución de Jon es más simple ... menos tipos ... no se requiere eliminación.

Debería probar con el Servicio de Windows en lugar de una aplicación de consola. Los servicios de Windows tienen un ciclo de vida iterativo, por lo que esto se puede lograr fácilmente utilizando un control de temporizador en el servicio de Windows. Deje que el temporizador funcione a intervalos y realice la acción deseada en ciertos intervalos de tiempo.

Por supuesto, también puede usar el control del temporizador con una aplicación de consola.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top