Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Control.BeginInvoke méthode (Delegate)

 

Date de publication : novembre 2016

Exécute le délégué spécifié de manière asynchrone sur le thread sur lequel le handle sous-jacent du contrôle a été créé.

Espace de noms:   System.Windows.Forms
Assembly:  System.Windows.Forms (dans System.Windows.Forms.dll)

public IAsyncResult BeginInvoke(
	Delegate method
)

Paramètres

method
Type: System.Delegate

Délégué vers une méthode qui n'accepte pas de paramètres.

Valeur de retour

Type: System.IAsyncResult

IAsyncResult qui représente le résultat de l'opération BeginInvoke.

Exception Condition
InvalidOperationException

Aucun handle de fenêtre appropriées ne sont accessibles.

Le délégué est appelé de façon asynchrone, et cette méthode est retournée immédiatement. Vous pouvez appeler cette méthode à partir de n’importe quel thread, même le thread qui détient le handle du contrôle. Si le handle du contrôle n’existe pas encore, cette méthode recherche dans la chaîne du contrôle parent jusqu'à ce qu’il trouve un contrôle ou un formulaire avec un handle de fenêtre. Si aucun handle approprié n’est trouvé, BeginInvoke lève une exception. Exceptions au sein de la méthode delegate sont considérées comme non interceptées et sera envoyé au gestionnaire d’exceptions non interceptées de l’application.

Vous pouvez appeler EndInvoke pour récupérer la valeur de retour du délégué, si nécessaire, mais cela n’est pas nécessaire. EndInvoke se bloque jusqu'à ce que la valeur de retour peut être récupérée.

System_CAPS_noteRemarque

La plupart des méthodes sur un contrôle peut uniquement être appelée à partir du thread sur lequel le contrôle a été créé. Outre le InvokeRequired propriété, il existe quatre méthodes sur un contrôle qui sont thread-safe : Invoke, BeginInvoke, EndInvoke, et CreateGraphics Si le handle du contrôle a déjà été créé. L’appel CreateGraphics avant que le handle du contrôle a été créé sur un thread d’arrière-plan peut entraîner des appels du thread inter illégaux. Pour tous les autres appels de méthode, vous devez utiliser une des méthodes invoke pour marshaler l’appel vers le thread du contrôle. Les méthodes invoke appellent toujours leurs rappels sur le thread du contrôle.

System_CAPS_noteRemarque

Une exception peut être levée si le thread qui doit traiter le message n’est plus actif.

L’exemple de code suivant illustre une utilisation de la BeginInvoke méthode.

public delegate void InvokeDelegate();

private void Invoke_Click(object sender, EventArgs e)
{
   myTextBox.BeginInvoke(new InvokeDelegate(InvokeMethod));
}
public void InvokeMethod()
{
   myTextBox.Text = "Executed the given delegate";
}

SecurityPermission

for the immediate caller to call unmanaged code. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: