elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C#] Thread dentro de un objeto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C#] Thread dentro de un objeto  (Leído 2,552 veces)
Vicks

Desconectado Desconectado

Mensajes: 5


Ver Perfil
[C#] Thread dentro de un objeto
« en: 5 Marzo 2012, 23:53 pm »

Hola.

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
  1. class contador
  2.    {
  3.        //public static int _contador = 0;
  4.        public Label etiqueta;
  5.        public int repeticiones = 100000000;
  6.        private Thread tarea;
  7.  
  8.        private void bucle()
  9.        {
  10.            for (int i = 0; i < repeticiones; i++)
  11.            {
  12.                etiqueta.Text = i.ToString();
  13.  
  14.            }
  15.            Thread.Sleep(100);
  16.        }
  17.  
  18.        public void arranca()
  19.        {
  20.            tarea = new Thread(new ThreadStart(bucle));
  21.            tarea.Start();
  22.        }
  23.    }

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
  1.        public static contador cont1 = new contador();
  2.        public static contador cont2 = new contador();
  3.  
  4.        public static void crea_etiquetas()
  5.        {
  6.            cont1.etiqueta = new Label();
  7.            cont2.etiqueta = new Label();
  8.  
  9.  
  10.            cont1.etiqueta.Size = new System.Drawing.Size(35, 13);
  11.            cont2.etiqueta.Size = new System.Drawing.Size(35, 13);
  12.            cont1.etiqueta.Text = "0";
  13.            cont2.etiqueta.Text = "0";
  14.            cont1.etiqueta.Location = new System.Drawing.Point(36, 54);
  15.            cont2.etiqueta.Location = new System.Drawing.Point(177, 54);
  16.  
  17.        }
  18.  

crea_etiquetas es llamada desde main, donde despues de crear el form, se "arrancan" los contadores.

Código
  1. main()
  2. {
  3.            .
  4.            .
  5.            .
  6.            crea_etiquetas();
  7.  
  8.            Application.Run(new Form1());
  9.  
  10.  
  11.            cont1.arranca();
  12.            cont2.arranca();
  13. }

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?  :rolleyes:




En línea

Atrum

Desconectado Desconectado

Mensajes: 65



Ver Perfil WWW
Re: [C#] Thread dentro de un objeto
« Respuesta #1 en: 9 Marzo 2012, 17:14 pm »

Estas creando los objetos desde tu Main thread y estas tratando de accederlos desde el thread que tu creaste, esto podría ser el error, que Framework utilizas??


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear un objeto dentro de otro objeto
Programación Visual Basic
Tokes 7 7,090 Último mensaje 30 Agosto 2010, 05:41 am
por BlackZeroX
Problema con objeto dentro de otro objeto
PHP
Skeletron 3 6,511 Último mensaje 5 Enero 2011, 04:10 am
por Skeletron
como usar un mismo objeto dentro de dos metodos
.NET (C#, VB.NET, ASP)
greenselves 1 2,157 Último mensaje 27 Mayo 2011, 01:10 am
por neoncyber
[Ruby] Modificar variable de un objeto dentro de una clase
Scripting
Eleкtro 2 3,199 Último mensaje 23 Febrero 2012, 10:52 am
por Eleкtro
[Resuelto] javascript itinerancia de un objeto dentro de un timer
Desarrollo Web
EFEX 6 3,389 Último mensaje 28 Marzo 2018, 13:02 pm
por EFEX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines