CSPromex
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.


Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceBuscarÚltimas imágenesChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
» Sockets Conexion,Envio y recepcion de datos (mini-chat Cliente-Servidor)
Aprendiendo Thread (Hilos) I_icon_minitimeSáb Sep 30, 2023 6:24 pm por EurekaMartin

» Graficos: Grafica circular
Aprendiendo Thread (Hilos) I_icon_minitimeMar Mar 05, 2019 4:58 pm por Luis Garcia

» Calendario hecho Manualmente
Aprendiendo Thread (Hilos) I_icon_minitimeMar Mar 05, 2019 3:52 pm por Luis Garcia

» Activar el protector de pantalla.
Aprendiendo Thread (Hilos) I_icon_minitimeMar Mar 05, 2019 3:12 pm por Luis Garcia

» Hacer backup de MySql desde C#
Aprendiendo Thread (Hilos) I_icon_minitimeMar Abr 18, 2017 10:04 pm por maurifl

» Sockets programa para Ciber Cafe (Cliente-Servidor)
Aprendiendo Thread (Hilos) I_icon_minitimeLun Ago 10, 2015 5:45 pm por artes

» Ayuda crear emoticones en un chat
Aprendiendo Thread (Hilos) I_icon_minitimeDom Jul 12, 2015 9:00 pm por yeco96

» Necesito ayuda para pasar datos a un Datagridview
Aprendiendo Thread (Hilos) I_icon_minitimeDom Jun 07, 2015 4:33 pm por rafaelfa

» Reproductor de música->Lista de reproducción (Guardar-Cargar)
Aprendiendo Thread (Hilos) I_icon_minitimeLun Jun 01, 2015 3:00 pm por kevin22

Buscar
 
 

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

 

 Aprendiendo Thread (Hilos)

Ir abajo 
AutorMensaje
Guillermo Javier Salazar
STAFF TEAM
STAFF TEAM
Guillermo Javier Salazar


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

Aprendiendo Thread (Hilos) Empty
MensajeTema: Aprendiendo Thread (Hilos)   Aprendiendo Thread (Hilos) I_icon_minitimeDom 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
https://cspromex.activo.mx
 
Aprendiendo Thread (Hilos)
Volver arriba 
Página 1 de 1.
 Temas similares
-
» Aprendiendo Delegados
» Ayuda con Hilos (Threads) en Pockets PC

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