Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Síguenos:
Crear foro Crear foro Crear foro

Comparte | 
 

 Aprendiendo Thread (Hilos)

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Guillermo Javier Salazar
STAFF TEAM
STAFF TEAM


Mensajes : 181
Puntos : 349
Localización : México
Comentarios : El azar favorece a una mente preparada.

MensajeTema: Aprendiendo Thread (Hilos)   Dom Mar 06, 2011 5:17 pm

Aprendiendo Thread (Hilos)

Un hilo nos sirve para manipular el tiempo de ejecución de un proceso, asi como controlar la ejecución de distintos procesos a la vez, Por ejemplo, cuando tenemos un proceso demasiado tardado, como podría ser alguna ecuación aritmética compleja o quizas consultas a la BD, nuestro programa tiende a colgarse (ciclarse, congelarse, pararse, "deja de funcionar") durante el tiempo que se realice dicho proceso, esto puede ser molesto, pero podemos usar un hilo para este proceso y separarlo de la ejecución de nuestro programa, asi el programa seguirá funcionando normal, mientras nuestro proceso esta ejecutándose. Veamos un ejemplo:
----------------------------------------------------
Código:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace WindowsFormsApplication1
{

    public partial class Form1 : Form
    {
        Thread hilo1;
        Thread hilo2;
        byte r, g;
        bool b1, b2;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            r = 0; g = 255; b1 = false; b2 = true;
            hilo1 = new Thread(new ThreadStart(proceso1));
            hilo2 = new Thread(new ThreadStart(proceso2));
            hilo1.Start();
            hilo2.Start();
        }

        public void proceso1()
        {
            while (true)
            {
                Thread.Sleep(10);
                if (r >= 0 && r <= 255 && b1 == false)
                {
                    r++;
                    if (r == 255)
                        b1 = true;
                }
                if (r >= 0 && r <= 255 && b1 == true)
                {
                    r--;
                    if (r == 0)
                        b1 = false;
                }
                pictureBox1.BackColor = Color.FromArgb(r, 80, 100);
            }
        }

        public void proceso2()
        {
            while (true)
            {
                Thread.Sleep(10);
                if (g >= 0 && g <= 255 && b2 == false)
                {
                    g++;
                    if (g == 255)
                        b2 = true;
                }
                if (g >= 0 && g <= 255 && b2 == true)
                {
                    g--;
                    if (g == 0)
                        b2 = false;
                }
                pictureBox2.BackColor = Color.FromArgb(100, g, 80);
            }
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            hilo1.Abort();
            hilo2.Abort();
        }
    }
}
----------------------------------------------------
Tenemos 2 Thread: "hilo1" e "hilo2", a cada uno le asociamos un método al "hilo1" el método "proceso1" y al "hilo2" el método "proceso2", Lo que permiten lo Thread es que ambos métodos (proceso1 y proceso2) se ejecuten simultáneamente.
Los Thread se ejecutan utilizando el método "Start()" y se termina con el "Abort()", también se usa el método "Sleep()" que pausa la ejecución del thread durante un tiempo dado en milisegundos. Lo que hace el programa es variar los colores de fondo de ambos picturesBox con un bucle infinito.

[Tienes que estar registrado y conectado para ver esa imagen]
Volver arriba Ir abajo
Ver perfil de usuario http://cspromex.activo.mx
 
Aprendiendo Thread (Hilos)
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Los hilos se marcan como leidos si te deslogueas antes de leerlos
» Algunos hilos de mi foro se están descuadrando solos
» No aparece el nombre del foro en los hilos
» Como cambio el fondo del thread no del texto
» Estos hilos interfieren en la busqueda de nuestro foro.

Permisos de este foro:No puedes responder a temas en este foro.
CSPromex :: PROGRAMACIÓN EN C# :: Aprendiendo C#-
Cambiar a: