コード例 #1
0
 private void AsignarNumero(string texto)
 {
     //Devuelve true si los hilos son distintos.
     //Como este metodo es llamado por el metodo Hacer() ejecutado en un hilo diferente, ejecutara las sentencias.
     //Es importante que este dentro de un try y un catch, ya que al cerrar el programa arrojara una excepcion. Esto se debe a que mi segundo hilo esta colocando informacion en alguna parte de mi hilo priuncipal.
     //Cuando cierro la venta, el hilo secundario intentara insertar informacion en el hilo principal que ya fue cerrado y como resultado lanza la excepcion.
     try
     {
         if (this.lblNumero.InvokeRequired)
         {
             AsignarNumeroDelegado delegado = new AsignarNumeroDelegado(this.AsignarNumero);
             //Este comando se encarga de invocar un delegado, llamare devuelta a este metodo, AsignarNumero() pero estando dentro del mismo hilo.
             //Como entro por segunda vez a este metodo por el hilo que yo cree, entrara al else y le asignara al label los numeros que le pase por parametro al metodo AsignarNumero().
             this.Invoke(delegado, new Object[] { texto });
         }
         else
         {
             this.lblNumero.Text = texto;
         }
     }
     catch (Exception excepcion)
     {
         MessageBox.Show(excepcion.Message);
     }
 }
コード例 #2
0
 public void AsignarNumero(string text)
 {
     try
     {
         //invokerequired devuelve TRUE si los hilos son distintos
         if (this.LblNumero.InvokeRequired)
         {
             AsignarNumeroDelegado asigndelegate = new AsignarNumeroDelegado(AsignarNumero);
             this.Invoke(asigndelegate, new object[] { text });
         }
         else
         {
             LblNumero.Text = text;
         }
     }
     catch (Exception)
     {
     }
 }