jueves, 12 de septiembre de 2013

.NET - Procesos asincronos y multihilo

Declaras el hilo


Thread borra;


Declaras la funcion (con o sin parametros)


//Si tiene algun parametro ha de ser del tipo object
public void BorraElementos(object fetch) {
...

}


Se crea el hilo

//Si tiene parametros
borra = new Thread(new ParameterizedThreadStart(BorraElementos));
//Si no tiene parametros
borra = new Thread(BorraElementos);


Iniciación y Finalización del hilo

//Inicio
Con parametros: borra.Start(textBoxFetch.Text);
Sin parametros: borra.Start();
//Fin
borra.Interrupt();




Manejo de una barra de progreso en un formulario que lanza el hilo


//Para acceder desde un hilo a su padre hay que crear delegados de los métodos que acceden

delegate void IniciaBarraDelegate(int valor);

delegate void RefreshProgressDelegate(int valor, string texto);

//Y declaracion de los métodos

public void IniciaBarra(int valor) {
      progressBar1.Minimum = 0;
      progressBar1.Maximum = valor;
}

public void RefreshProgress(int valor, string texto) {
      if (this == null) return;
      progressBar1.Value = valor;
      labelProgreso.Text = texto;
}

No hay comentarios:

Publicar un comentario