BeginEventHandler Délégué
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente la méthode qui gère des événements asynchrones, tels que des événements d'application. Ce délégué est appelé au début d'une opération asynchrone.
public delegate IAsyncResult ^ BeginEventHandler(System::Object ^ sender, EventArgs ^ e, AsyncCallback ^ cb, System::Object ^ extraData);
public delegate IAsyncResult BeginEventHandler(object sender, EventArgs e, AsyncCallback cb, object extraData);
type BeginEventHandler = delegate of obj * EventArgs * AsyncCallback * obj -> IAsyncResult
Public Delegate Function BeginEventHandler(sender As Object, e As EventArgs, cb As AsyncCallback, extraData As Object) As IAsyncResult
Paramètres
- sender
- Object
Source de l'événement.
Délégué à appeler une fois l'appel de la méthode asynchrone terminé. Si cb
a la valeur null
, le délégué n'est pas appelé.
- extraData
- Object
Données supplémentaires éventuelles nécessaires pour traiter la demande.
Valeur renvoyée
IAsyncResult qui représente le résultat de l'opération BeginEventHandler.
Exemples
L’exemple de code suivant utilise le BeginEventHandler délégué pour inscrire un gestionnaire d’une page asynchrone.
Important
Cet exemple comprend une zone de texte qui accepte une entrée d'utilisateur, ce qui constitue une menace potentielle pour la sécurité. Par défaut, les pages web ASP.NET vérifient que l’entrée d’utilisateur n’inclut pas de script ou d’éléments HTML. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.
<%@ page language="C#" Async="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
System.Net.WebRequest myRequest;
void Page_Load(object sender, EventArgs e)
{
Label1.Text = "Page_Load: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();
BeginEventHandler bh = new BeginEventHandler(this.BeginGetAsyncData);
EndEventHandler eh = new EndEventHandler(this.EndGetAsyncData);
AddOnPreRenderCompleteAsync(bh, eh);
// Initialize the WebRequest.
string address = "http://localhost/";
myRequest = System.Net.WebRequest.Create(address);
}
IAsyncResult BeginGetAsyncData(Object src, EventArgs args, AsyncCallback cb, Object state)
{
Label2.Text = "BeginGetAsyncData: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();
return myRequest.BeginGetResponse(cb, state);
}
void EndGetAsyncData(IAsyncResult ar)
{
Label3.Text = "EndGetAsyncData: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();
System.Net.WebResponse myResponse = myRequest.EndGetResponse(ar);
result.Text = new System.IO.StreamReader(myResponse.GetResponseStream()).ReadToEnd();
myResponse.Close();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
Page.AddOnPreRenderCompleteAsync Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:label id="Label1" runat="server">
Label 1</asp:label><br />
<asp:label id="Label2" runat="server">
Label 2</asp:label><br />
<asp:label id="Label3" runat="server">
Label 3</asp:label><br />
<asp:textbox id="result" runat="server" textMode="multiLine" ReadOnly="true" columns="80" rows="25" />
</form>
</body>
</html>
<%@ page language="VB" Async="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim myRequest As System.Net.WebRequest
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Label1.Text = "Page_Load: Thread #" & System.Threading.Thread.CurrentThread.GetHashCode()
Dim bh As New BeginEventHandler(AddressOf Me.BeginGetAsyncData)
Dim eh As New EndEventHandler(AddressOf Me.EndGetAsyncData)
Me.AddOnPreRenderCompleteAsync(bh, eh)
' Initialize the WebRequest object.
Dim address As String
address = "http://localhost/"
myRequest = System.Net.WebRequest.Create(address)
End Sub
Function BeginGetAsyncData(ByVal src As Object, ByVal args As EventArgs, ByVal cb As AsyncCallback, ByVal state As Object) As IAsyncResult
Label2.Text = "BeginGetAsyncData: Thread #" & System.Threading.Thread.CurrentThread.GetHashCode()
Return Me.myRequest.BeginGetResponse(cb, state)
End Function
Sub EndGetAsyncData(ByVal ar As IAsyncResult)
Label3.Text = "EndGetAsyncData: Thread #" & System.Threading.Thread.CurrentThread.GetHashCode()
Dim myResponse As System.Net.WebResponse
myResponse = Me.myRequest.EndGetResponse(ar)
Dim reader As New System.IO.StreamReader(myResponse.GetResponseStream())
result.Text = reader.ReadToEnd()
myResponse.Close()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
Page.AddOnPreRenderCompleteAsync Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:label id="Label1" runat="server">
Label 1</asp:label><br />
<asp:label id="Label2" runat="server">
Label 2</asp:label><br />
<asp:label id="Label3" runat="server">
Label 3</asp:label><br />
<asp:textbox id="result" runat="server" textMode="multiLine" ReadOnly="true" columns="80" rows="25" />
</form>
</body>
</html>
Remarques
Lorsque vous créez un délégué BeginEventHandler, vous identifiez la méthode qui gérera l'événement. Pour associer l'événement au gestionnaire d'événements, ajoutez une instance du délégué à l'événement. Le gestionnaire d'événements est appelé chaque fois qu'un événement se produit, sauf si vous supprimez le délégué. Pour plus d’informations sur les délégués de gestionnaire d’événements, consultez Gestion et déclenchement d’événements.
Méthodes d’extension
GetMethodInfo(Delegate) |
Obtient un objet qui représente la méthode représentée par le délégué spécifié. |