Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize

BeginEventHandler Delegate

Represents the method that handles asynchronous events such as application events. This delegate is called at the start of an asynchronous operation.

Namespace:  System.Web
Assembly:  System.Web (in System.Web.dll)

Public Delegate Function BeginEventHandler ( _
	sender As Object, _
	e As EventArgs, _
	cb As AsyncCallback, _
	extraData As Object _
) As IAsyncResult


Type: System.Object

The source of the event.

Type: System.EventArgs

An EventArgs that contains the event data.

Type: System.AsyncCallback

The delegate to call when the asynchronous method call is complete. If cb is Nothing, the delegate is not called.

Type: System.Object

Any additional data needed to process the request.

Return Value

Type: System.IAsyncResult
The IAsyncResult that represents the result of the BeginEventHandler operation.

When you create a BeginEventHandler delegate, you identify the method that will handle the event. To associate the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever the event occurs, unless you remove the delegate. For more information about event-handler delegates, see Events and Delegates.

The following code example uses the BeginEventHandler delegate to register a handler an asynchronous page.

Security noteSecurity Note

This example has a text box that accepts user input, which is a potential security threat. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. For more information, see Script Exploits Overview.

<%@ page language="VB" Async="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<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()
  End Sub

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
      Page.AddOnPreRenderCompleteAsync Example</title>
    <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" />

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1
© 2015 Microsoft