Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Page.AddOnPreRenderCompleteAsync (BeginEventHandler, EndEventHandler)

 

Data di pubblicazione: ottobre 2016

Registra l'inizio e fine delegati del gestore eventi che non richiedono informazioni sullo stato per una pagina asincrona.

Spazio dei nomi:   System.Web.UI
Assembly:  System.Web (in System.Web.dll)

public void AddOnPreRenderCompleteAsync(
	BeginEventHandler beginHandler,
	EndEventHandler endHandler
)

Parametri

beginHandler
Type: System.Web.BeginEventHandler

Il delegato per il BeginEventHandler metodo.

endHandler
Type: System.Web.EndEventHandler

Il delegato per il EndEventHandler metodo.

Exception Condition
InvalidOperationException

Il <async> direttiva di pagina non è impostata su true.

-oppure-

Il AddOnPreRenderCompleteAsync metodo viene chiamato dopo il PreRender evento.

ArgumentNullException

Il BeginHandler o EndHandler è null.

Utilizzare il AddOnPreRenderCompleteAsync metodo per aggiungere gestori a una pagina Web asincrona.

È possibile registrare più gestori asincroni; Tuttavia, solo un gestore viene eseguito contemporaneamente. Se si desidera elaborare simultaneamente più metodi asincroni, è necessario utilizzare un unico BeginEventHandler (metodo) e avviare più operazioni asincrone da tale gestore.

I gestori asincroni vengono chiamati tra il PreRender e PreRenderComplete gli eventi.

Innanzitutto, tutti Page eventi (tramite il PreRender eventi) run e quindi ogni registrati BeginEventHandler viene chiamato il metodo. Al termine, il gestore corrispondente EndEventHandler viene chiamato il metodo. Se sono presenti più gestori asincroni, viene chiamato il gestore successivo.

Dopo i gestori eventi asincroni registrati vengono chiamati il resto degli eventi di pagina, a partire dal PreRenderComplete evento.

Esempio di codice seguente utilizza una richiesta asincrona per visualizzare il codice sorgente HTML della pagina predefinita del server Web locale in un TextBox controllo.

System_CAPS_security Sicurezza Nota

L'esempio include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per altre informazioni, vedere 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>

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: