EndEventHandler Delegat
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Methode dar, die asynchrone Ereignisse behandelt (z. B. Anwendungsereignisse).
public delegate void EndEventHandler(IAsyncResult ^ ar);
public delegate void EndEventHandler(IAsyncResult ar);
type EndEventHandler = delegate of IAsyncResult -> unit
Public Delegate Sub EndEventHandler(ar As IAsyncResult)
Parameter
- ar
- IAsyncResult
Das IAsyncResult, das das Ergebnis der BeginEventHandler-Operation ist.
Beispiele
Im folgenden Codebeispiel wird der EndEventHandler Delegat verwendet, um einen Handler für eine asynchrone Seite zu registrieren.
<%@ 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>
Hinweise
Dieser Delegat wird von der Ereignisquelle aufgerufen, wenn der Abschluss des asynchronen Vorgangs durch einen Rückruf an den BeginEventHandler Delegaten signalisiert wird.
Beim Erstellen eines EndEventHandler-Delegaten geben Sie die Methode für die Ereignisbehandlung an. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird. Weitere Informationen zu Ereignishandlerdelegierten finden Sie unter Behandeln und Auslösen von Ereignissen.
Erweiterungsmethoden
GetMethodInfo(Delegate) |
Ruft ein Objekt ab, das die Methode darstellt, die vom angegebenen Delegaten dargestellt wird. |