Page.AddOnPreRenderCompleteAsync Metodo

Definizione

Registra i delegati dei gestori eventi di inizio e di fine per una pagina asincrona.Registers beginning and ending event handler delegates for an asynchronous page.

Overload

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler)

Registra i delegati dei gestori eventi di inizio e di fine che non richiedono informazioni sullo stato per una pagina asincrona.Registers beginning and ending event handler delegates that do not require state information for an asynchronous page.

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object)

Registra i delegati del gestore eventi di inizio e di fine per una pagina asincrona.Registers beginning and ending event handler delegates for an asynchronous page.

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler)

Registra i delegati dei gestori eventi di inizio e di fine che non richiedono informazioni sullo stato per una pagina asincrona.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)

Parametri

beginHandler
BeginEventHandler

Delegato del metodo BeginEventHandler.The delegate for the BeginEventHandler method.

endHandler
EndEventHandler

Delegato del metodo EndEventHandler.The delegate for the EndEventHandler method.

Eccezioni

La direttiva della pagina <async> non è impostata su true.The <async> page directive is not set to true.

-oppure--or-

Il metodo AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) viene chiamato dopo l'evento PreRender.The AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) method is called after the PreRender event.

Esempio

Nell'esempio di codice seguente viene usata una richiesta asincrona per visualizzare il codice sorgente HTML della pagina predefinita del server Web locale in un TextBox controllo.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.

Importante

L'esempio include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza.This example has a text box that accepts user input, which is a potential security threat. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite script.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>

Commenti

Utilizzare il AddOnPreRenderCompleteAsync metodo per aggiungere gestori a una pagina Web asincrona.Use the AddOnPreRenderCompleteAsync method to add handlers to an asynchronous Web page.

È possibile registrare più gestori asincroni. viene tuttavia eseguito un solo gestore alla volta.You can register multiple asynchronous handlers; however, only one handler runs at a time. Se si desidera elaborare contemporaneamente più metodi asincroni, è necessario utilizzare un solo BeginEventHandler metodo e avviare più operazioni asincrone da tale gestore.If you want to process multiple asynchronous methods simultaneously, you should use a single BeginEventHandler method and launch multiple asynchronous operations from that handler.

I gestori asincroni vengono chiamati tra gli PreRender eventi e PreRenderComplete .The asynchronous handlers are called between the PreRender and PreRenderComplete events.

PageVengono innanzitutto eseguiti tutti gli eventi (tramite l' PreRender evento), quindi BeginEventHandler viene chiamato ogni metodo registrato.First, all Page events (through the PreRender event) are run, and then each registered BeginEventHandler method is called. Al termine del gestore, EndEventHandler viene chiamato il metodo corrispondente.When the handler completes, the corresponding EndEventHandler method is called. Se sono presenti più gestori asincroni, viene chiamato il gestore successivo.If there are multiple asynchronous handlers, the next handler is called.

Una volta chiamati i gestori eventi asincroni registrati, viene chiamato il resto degli eventi di pagina, a partire dall' PreRenderComplete evento.After the registered asynchronous event handlers have been called, the rest of the page events are called, beginning with the PreRenderComplete event.

Vedi anche

Si applica a

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object)

Registra i delegati del gestore eventi di inizio e di fine per una pagina asincrona.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)

Parametri

beginHandler
BeginEventHandler

Delegato del metodo BeginEventHandler.The delegate for the BeginEventHandler method.

endHandler
EndEventHandler

Delegato del metodo EndEventHandler.The delegate for the EndEventHandler method.

state
Object

Oggetto contenente le informazioni sullo stato per i gestori eventi.An object containing state information for the event handlers.

Eccezioni

La direttiva della pagina <async> non è impostata su true.The <async> page directive is not set to true.

-oppure--or-

Il metodo AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) viene chiamato dopo l'evento PreRender.The AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) method is called after the PreRender event.

Esempio

Nell'esempio di codice seguente viene usata una richiesta asincrona per visualizzare il codice sorgente HTML della pagina predefinita del server Web locale in un TextBox controllo.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.

Importante

L'esempio include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza.This example has a text box that accepts user input, which is a potential security threat. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite script.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>

Commenti

Utilizzare il AddOnPreRenderCompleteAsync metodo per aggiungere gestori che richiedono informazioni sullo stato a una pagina Web asincrona.Use the AddOnPreRenderCompleteAsync method to add handlers that require state information to an asynchronous Web page. L'oggetto passato nel state parametro può essere qualsiasi oggetto richiesto dall'applicazione per trasferire le informazioni tra i delegati del gestore eventi specificati nei beginHandler endHandler parametri e.The 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.

È possibile registrare più gestori asincroni. viene tuttavia eseguito un solo gestore alla volta.You can register multiple asynchronous handlers; however, only one handler runs at a time. Se si desidera elaborare contemporaneamente più metodi asincroni, è necessario utilizzare un solo BeginEventHandler metodo e avviare più operazioni asincrone da tale gestore.If you want to process multiple asynchronous methods simultaneously, you should use a single BeginEventHandler method and launch multiple asynchronous operations from that handler.

I gestori asincroni vengono chiamati tra gli PreRender eventi e PreRenderComplete .The asynchronous handlers are called between the PreRender and PreRenderComplete events.

PageVengono innanzitutto eseguiti tutti gli eventi (tramite l' PreRender evento), quindi BeginEventHandler viene chiamato ogni metodo registrato.First, all Page events (through the PreRender event) are run, and then each registered BeginEventHandler method is called. Al termine del gestore, EndEventHandler viene chiamato il metodo corrispondente.When the handler completes, the corresponding EndEventHandler method is called. Se sono presenti più gestori asincroni, viene chiamato il gestore successivo.If there are multiple asynchronous handlers, the next handler is called.

Una volta chiamati i gestori eventi asincroni registrati, viene chiamato il resto degli eventi di pagina, a partire dall' PreRenderComplete evento.After the registered asynchronous event handlers have been called, the rest of the page events are called, beginning with the PreRenderComplete event.

Si applica a