Hola, he entrado en un problema relacionado con el temporizador. esperanza alguien puede ayudar ..iniciar un temporizador de hilo diferente en C#
- que tiene forma de ventana que contiene un botón
- cuando hago clic en ese botón i iniciar un hilo parametrizado
Thread thread1 = new Thread(new ParameterizedThreadStart(execute2));
thread1.Start(externalFileParams);
- el código dentro del hilo se ejecuta muy bien
- en la última línea de este hilo, comienzo un temporizador
.
public void execute2(Object ob)
{
if (ob is ExternalFileParams)
{
if (boolean_variable== true)
executeMyMethod();//this also executes very well if condition is true
else
{
timer1.enabled = true;
timer1.start();
}
}
}
}
5 pero el evento Tick del temporizador no se dispara
estoy trabajando en VS2008 3,5 marco. Me he arrastrado el temporizador de la caja de herramientas y establecer su Interval
a 300 también trataron de establecer Enabled
verdadero falso método/es timer1_Tick(Object sender , EventArgs e)
pero no es despedido
puede sugerir a nadie lo que estoy haciendo mal?
Es muy poco probable que esta sea la mejor manera de lograr lo que desea: si tiene una tarea larga que necesita actualizar un formulario con progreso, entonces BackgroundWorker es una buena forma de hacerlo. Si necesita más control manual, un hilo de agrupación (vea ThreadPool.QueueUserWorkItem) es mejor que crear su propio subproceso. –
necesitaría invocar el timer.start en el hilo de su formulario/control de host, pero es una forma incómoda de hacerlo. Use 'Control.BeginInvoke' para llamar a un delegado apropiado. – Jodrell