private void setLabelVisibility(Label label, bool value) { if (label.InvokeRequired) { StringArgReturningVoidDelegateLabelVisibility d = new StringArgReturningVoidDelegateLabelVisibility(setLabelVisibility); this.Invoke(d, new object[] { label, value }); } else { label.Visible = value; } }
//Metodo para modificar un objeto en un thread que no es en el que fue creado private void setVisibility(Label label, bool value) { if (label.InvokeRequired) { //Se necesita esto, es parte del patron, los Delegate estan declarados como variables globales, y estan relacionados //a los parametros de este metodo StringArgReturningVoidDelegateLabelVisibility d = new StringArgReturningVoidDelegateLabelVisibility(setVisibility); this.Invoke(d, new object[] { label, value }); } else { label.Visible = value; } }