Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Control.BeginInvoke-Methode: (Delegate, Object[])

 

Veröffentlicht: Oktober 2016

Führt den angegebenen Delegaten asynchron mit den angegebenen Argumenten für den Thread aus, in dem das diesem Steuerelement zugrunde liegende Handle erstellt wurde.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public IAsyncResult BeginInvoke(
	Delegate method,
	params object[] args
)

Parameter

method
Type: System.Delegate

Ein Delegat einer Methode, der Parameter derselben Anzahl und desselben Typs der im args-Parameter enthaltenen Parameter annimmt.

args
Type: System.Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen. Dies kann null sein, wenn keine Argumente benötigt werden.

Rückgabewert

Type: System.IAsyncResult

Ein IAsyncResult-Objekt, das das Ergebnis der BeginInvoke-Operation darstellt.

Exception Condition
InvalidOperationException

Es kann kein entsprechendes Fensterhandle gefunden werden.

Der Delegat wird asynchron aufgerufen, und diese Methode kehrt sofort zurück. Von jedem Thread, einschließlich des Threads, die das Handle des Steuerelements besitzt, können Sie diese Methode aufrufen. Wenn das Handle des Steuerelements noch nicht vorhanden ist, durchsucht diese Methode die Kette der übergeordneten Elemente bis zu einem Steuerelement oder Formular, das ein Fensterhandle vorhanden ist. Wenn kein geeignetes Handle gefunden werden kann, BeginInvoke löst eine Ausnahme aus. Ausnahmen in der Delegatmethode gelten als nicht abgefangen und an die Anwendung nicht abgefangene Ausnahme-Handler gesendet.

Rufen Sie EndInvoke auf den Rückgabewert aus dem Delegaten abzurufen, wenn erforderlich, aber dies ist nicht erforderlich. EndInvoke blockiert, bis der Rückgabewert abgerufen werden kann.

System_CAPS_noteHinweis

Die meisten Methoden in einem Steuerelement können nur von dem Thread aufgerufen werden, in dem das Steuerelement erstellt wurde. Zusätzlich zu der InvokeRequired -Eigenschaft, es gibt vier Methoden in einem Steuerelement threadsicher werden: Invoke, BeginInvoke, EndInvoke, und CreateGraphics wenn das Handle für das Steuerelement bereits erstellt wurde. Aufrufen von CreateGraphics vor Erstellung das Handle des Steuerelements in einem Hintergrundthread unzulässigen threadübergreifenden aufrufen kann. Für alle anderen Methodenaufrufe sollten Sie eine der Aufrufmethoden, um den Thread des Steuerelements zu marshallen verwenden. Die Aufrufmethoden rufen immer ihre Rückrufe auf Thread des Steuerelements.

System_CAPS_noteHinweis

Wenn der Thread, der die Nachricht verarbeitet werden soll, nicht mehr aktiv ist, möglicherweise eine Ausnahme ausgelöst werden.

Das folgende Codebeispiel veranschaulicht die BeginInvoke Methode.

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);
}

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: