Page.AddOnPreRenderCompleteAsync Page.AddOnPreRenderCompleteAsync Page.AddOnPreRenderCompleteAsync Page.AddOnPreRenderCompleteAsync Method

Definition

Registriert Anfangs- und Endereignishandlerdelegaten für eine asynchrone Seite.Registers beginning and ending event handler delegates for an asynchronous page.

Überlädt

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler)

Registriert Anfangs- und Endereignishandlerdelegaten, die keine Zustandsinformationen für eine asynchrone Seite erfordern.Registers beginning and ending event handler delegates that do not require state information for an asynchronous page.

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object)

Registriert Anfangs- und Endereignishandlerdelegaten für eine asynchrone Seite.Registers beginning and ending event handler delegates for an asynchronous page.

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler)

Registriert Anfangs- und Endereignishandlerdelegaten, die keine Zustandsinformationen für eine asynchrone Seite erfordern.Registers beginning and ending event handler delegates that do not require state information for an asynchronous page.

public:
 void AddOnPreRenderCompleteAsync(System::Web::BeginEventHandler ^ beginHandler, System::Web::EndEventHandler ^ endHandler);
public void AddOnPreRenderCompleteAsync (System.Web.BeginEventHandler beginHandler, System.Web.EndEventHandler endHandler);
member this.AddOnPreRenderCompleteAsync : System.Web.BeginEventHandler * System.Web.EndEventHandler -> unit
Public Sub AddOnPreRenderCompleteAsync (beginHandler As BeginEventHandler, endHandler As EndEventHandler)

Parameter

beginHandler
BeginEventHandler BeginEventHandler BeginEventHandler BeginEventHandler

Der Delegat für die BeginEventHandler-Methode.The delegate for the BeginEventHandler method.

endHandler
EndEventHandler EndEventHandler EndEventHandler EndEventHandler

Der Delegat für die EndEventHandler-Methode.The delegate for the EndEventHandler method.

Ausnahmen

Die <async>-Seitendirektive ist nicht auf true festgelegt.The <async> page directive is not set to true.

- oder --or- Die AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler)-Methode wird nach dem PreRender-Ereignis aufgerufen.The AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) method is called after the PreRender event.

Beispiele

Im folgenden Codebeispiel wird eine asynchrone Anforderung verwendet, um den HTML-Quellcode der Standardseite des lokalen Webservers in einem TextBox -Steuerelement anzuzeigen.The following code example uses an asynchronous request to display the HTML source code of the local Web server's default page in a TextBox control.

Wichtig

Dieses Beispiel umfasst ein Textfeld, das Benutzereingaben akzeptiert, die ein potenzielles Sicherheitsrisiko darstellen.This example has a text box that accepts user input, which is a potential security threat. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.For more information, see Script Exploits Overview.

<%@ 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

Verwenden Sie AddOnPreRenderCompleteAsync die-Methode, um Handler zu einer asynchronen Webseite hinzuzufügen.Use the AddOnPreRenderCompleteAsync method to add handlers to an asynchronous Web page.

Sie können mehrere asynchrone Handler registrieren. Es wird jedoch jeweils nur ein einziger Handler ausgeführt.You can register multiple asynchronous handlers; however, only one handler runs at a time. Wenn Sie mehrere asynchrone Methoden gleichzeitig verarbeiten möchten, sollten Sie eine einzelne BeginEventHandler Methode verwenden und mehrere asynchrone Vorgänge von diesem Handler aus starten.If you want to process multiple asynchronous methods simultaneously, you should use a single BeginEventHandler method and launch multiple asynchronous operations from that handler.

Die asynchronen Handler werden zwischen dem-Ereignis PreRender und PreRenderComplete dem-Ereignis aufgerufen.The asynchronous handlers are called between the PreRender and PreRenderComplete events.

Zuerst werden alle Page Ereignisse (durch das PreRender -Ereignis) ausgeführt, und anschließend wird jede BeginEventHandler registrierte-Methode aufgerufen.First, all Page events (through the PreRender event) are run, and then each registered BeginEventHandler method is called. Wenn der Handler abgeschlossen ist, wird EndEventHandler die entsprechende-Methode aufgerufen.When the handler completes, the corresponding EndEventHandler method is called. Wenn mehrere asynchrone Handler vorhanden sind, wird der nächste Handler aufgerufen.If there are multiple asynchronous handlers, the next handler is called.

Nachdem die registrierten asynchronen Ereignishandler aufgerufen wurden, werden die restlichen Seiten Ereignisse aufgerufen, beginnend mit dem PreRenderComplete -Ereignis.After the registered asynchronous event handlers have been called, the rest of the page events are called, beginning with the PreRenderComplete event.

Siehe auch

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object) AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object)

Registriert Anfangs- und Endereignishandlerdelegaten für eine asynchrone Seite.Registers beginning and ending event handler delegates for an asynchronous page.

public:
 void AddOnPreRenderCompleteAsync(System::Web::BeginEventHandler ^ beginHandler, System::Web::EndEventHandler ^ endHandler, System::Object ^ state);
public void AddOnPreRenderCompleteAsync (System.Web.BeginEventHandler beginHandler, System.Web.EndEventHandler endHandler, object state);
member this.AddOnPreRenderCompleteAsync : System.Web.BeginEventHandler * System.Web.EndEventHandler * obj -> unit
Public Sub AddOnPreRenderCompleteAsync (beginHandler As BeginEventHandler, endHandler As EndEventHandler, state As Object)

Parameter

beginHandler
BeginEventHandler BeginEventHandler BeginEventHandler BeginEventHandler

Der Delegat für die BeginEventHandler-Methode.The delegate for the BeginEventHandler method.

endHandler
EndEventHandler EndEventHandler EndEventHandler EndEventHandler

Der Delegat für die EndEventHandler-Methode.The delegate for the EndEventHandler method.

state
Object Object Object Object

Ein Objekt, das Zustandsinformationen für die Ereignishandler enthält.An object containing state information for the event handlers.

Ausnahmen

Die <async>-Seitendirektive ist nicht auf true festgelegt.The <async> page directive is not set to true.

- oder --or- Die AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler)-Methode wird nach dem PreRender-Ereignis aufgerufen.The AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) method is called after the PreRender event.

Beispiele

Im folgenden Codebeispiel wird eine asynchrone Anforderung verwendet, um den HTML-Quellcode der Standardseite des lokalen Webservers in einem TextBox -Steuerelement anzuzeigen.The following code example uses an asynchronous request to display the HTML source code of the local Web server's default page in a TextBox control.

Wichtig

Dieses Beispiel umfasst ein Textfeld, das Benutzereingaben akzeptiert, die ein potenzielles Sicherheitsrisiko darstellen.This example has a text box that accepts user input, which is a potential security threat. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.For more information, see Script Exploits Overview.

<%@ 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

Verwenden Sie AddOnPreRenderCompleteAsync die-Methode zum Hinzufügen von Handlern, die Zustandsinformationen für eine asynchrone Webseite benötigen.Use the AddOnPreRenderCompleteAsync method to add handlers that require state information to an asynchronous Web page. Das Objekt, das im state - endHandler Parameter übergeben wird, kann ein beliebiges Objekt sein, das Ihre Anwendung benötigt, um Informationen beginHandler zwischen Ereignishandlerdelegaten zu übertragen, die in denThe object passed in the state parameter can be any object that your application requires to transfer information between event handler delegates specified in the beginHandler and the endHandler parameters.

Sie können mehrere asynchrone Handler registrieren. Es wird jedoch jeweils nur ein einziger Handler ausgeführt.You can register multiple asynchronous handlers; however, only one handler runs at a time. Wenn Sie mehrere asynchrone Methoden gleichzeitig verarbeiten möchten, sollten Sie eine einzelne BeginEventHandler Methode verwenden und mehrere asynchrone Vorgänge von diesem Handler aus starten.If you want to process multiple asynchronous methods simultaneously, you should use a single BeginEventHandler method and launch multiple asynchronous operations from that handler.

Die asynchronen Handler werden zwischen dem-Ereignis PreRender und PreRenderComplete dem-Ereignis aufgerufen.The asynchronous handlers are called between the PreRender and PreRenderComplete events.

Zuerst werden alle Page Ereignisse (durch das PreRender -Ereignis) ausgeführt, und anschließend wird jede BeginEventHandler registrierte-Methode aufgerufen.First, all Page events (through the PreRender event) are run, and then each registered BeginEventHandler method is called. Wenn der Handler abgeschlossen ist, wird EndEventHandler die entsprechende-Methode aufgerufen.When the handler completes, the corresponding EndEventHandler method is called. Wenn mehrere asynchrone Handler vorhanden sind, wird der nächste Handler aufgerufen.If there are multiple asynchronous handlers, the next handler is called.

Nachdem die registrierten asynchronen Ereignishandler aufgerufen wurden, werden die restlichen Seiten Ereignisse aufgerufen, beginnend mit dem PreRenderComplete -Ereignis.After the registered asynchronous event handlers have been called, the rest of the page events are called, beginning with the PreRenderComplete event.

Gilt für: