Este tema aún no ha recibido ninguna valoración - Valorar este tema

Control.BeginInvoke (Método) (Delegate, Object[])

Ejecuta el delegado especificado de forma asincrónica con los argumentos especificados en el subproceso donde se creó el identificador subyacente del control.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public IAsyncResult BeginInvoke (
	Delegate method,
	params Object[] args
)
public final IAsyncResult BeginInvoke (
	Delegate method, 
	Object[] args
)
public final function BeginInvoke (
	method : Delegate, 
	... args : Object[]
) : IAsyncResult
No aplicable.

Parámetros

method

Delegado de un método que obtiene los parámetros del mismo número y tipo que los incluidos en el parámetro args.

args

Matriz de objetos cuyos valores se pasan como argumentos al método especificado. Puede ser referencia null (Nothing en Visual Basic) si no se necesita ningún argumento.

Valor devuelto

Una IAsyncResult que representa el resultado de la operación BeginInvoke.

Se llama al delegado de forma asincrónica y el resultado devuelve este método inmediatamente. Se puede llamar a este método desde cualquier subproceso, incluso desde el subproceso que posee el identificador del control. Si el identificador del control no existe todavía, este método buscará la cadena principal del control hasta que encuentre un control o un formulario que tenga un identificador de ventana. Si no se encuentra un identificador apropiado, BeginInvoke producirá una excepción. Las excepciones que se producen dentro del método delegado se consideran no interceptadas y se envían al controlador de excepciones no interceptadas de la aplicación.

NotaNota:

A la mayoría de los métodos de un control sólo se les puede llamar desde el subproceso donde se creó el control. Además de la propiedad InvokeRequired, en un control hay cuatro métodos que son seguros para la ejecución de subprocesos: Invoke, BeginInvoke, EndInvoke y CreateGraphics si ya se ha creado el identificador del control. La llamada a CreateGraphics antes de la creación del identificador del control en un subproceso de fondo puede producir llamadas no válidas entre subprocesos. Para el resto de las llamadas a métodos, sería conveniente utilizar uno de los métodos de invocación para calcular las referencias de la llamada al subproceso del control. Los métodos de invocación siempre invocan sus devoluciones de llamada en el subproceso del control.

NotaNota:

Podría iniciarse una excepción si el subproceso que debe procesar el mensaje ya no está activo.

En el siguiente ejemplo de código se muestra un uso del método BeginInvoke.

public delegate void MyDelegate(Label myControl, string myArg2);

private void Button_Click(object sender, EventArgs e)
{
   object[] myArray = new object[2];

   myArray[0] = new Label();
   myArray[1] = "Enter a Value";
   myTextBox.BeginInvoke(new MyDelegate(DelegateMethod), myArray);
}

public void DelegateMethod(Label myControl, string myCaption)
{
   myControl.Location = new Point(16,16);
   myControl.Size = new Size(80, 25);
   myControl.Text = myCaption;
   this.Controls.Add(myControl);
}

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)