Estoy intentando montar una clase que sea capaz de lanzar uno de sus métodos en diferente thread.
Esta es la declaración de la clase:
Código
class contador { //public static int _contador = 0; public Label etiqueta; public int repeticiones = 100000000; private Thread tarea; private void bucle() { for (int i = 0; i < repeticiones; i++) { etiqueta.Text = i.ToString(); } Thread.Sleep(100); } public void arranca() { tarea.Start(); } }
tarea es el objeto Thread para crear el thread en el metodo arranca. El cual ya se encarga de lanzar el start. Como veis el metodo bucle es un bucle que va asignando el contador a una label de la propia clase.
La declaración de los objetos y las propiedades las etiquetas las hago en la clase programa:
Código
public static void crea_etiquetas() { cont1.etiqueta.Text = "0"; cont2.etiqueta.Text = "0"; }
crea_etiquetas es llamada desde main, donde despues de crear el form, se "arrancan" los contadores.
Código
main() { . . . crea_etiquetas(); cont1.arranca(); cont2.arranca(); }
Mi problema es que el programa arranca, pero las dos labels se quedan inmóviles a 0. Sin embargo el código de los threads creo que está bien...
Alguna pista?