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

Proprietà Page.AsyncTimeout

 

Data di pubblicazione: ottobre 2016

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice.

Ottiene o imposta un valore che indica l'intervallo di timeout utilizzato durante l'elaborazione di attività asincrone.

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

[BrowsableAttribute(false)]
public TimeSpan AsyncTimeout { get; set; }

Valore proprietà

Type: System.TimeSpan

Oggetto TimeSpan che contiene l'intervallo di tempo consentito per il completamento dell'attività asincrona. L'intervallo di tempo predefinito è 45 secondi.

Exception Condition
ArgumentException

La proprietà è stata impostata su un valore negativo.

Il timeout asincrono della pagina rappresenta la quantità di tempo di attesa della pagina per eseguire attività asincrone. Nella maggior parte dei casi, non impostare questa proprietà nel codice. Impostare l'intervallo di timeout asincrono pagina utilizzando del file di configurazione Web o nella direttiva. I valori impostati nella sezione di configurazione della pagina vengono sovrascritti dalla direttiva della pagina.

Definire l'attività asincrona utilizzando il PageAsyncTask classe e registrare un gestore di timeout un inizio e di fine. Se l'attività asincrona non viene completata nell'intervallo di tempo specificato, verrà richiamato il gestore di timeout.

Esempio di codice riportato di seguito viene illustrato l'utilizzo della AsyncTimeout proprietà con il ExecuteRegisteredAsyncTasks e RegisterAsyncTask metodi. Si noti l'utilizzo di gestori di inizio, fine e timeout. Nell'esempio viene introdotto un ritardo artificiale per illustrare il caso di un'attività asincrona che supera il tempo per l'attività come specificato nella AsyncTimeout proprietà. In uno scenario reale, un'attività asincrona può essere utilizzata per eseguire chiamate al database o la generazione di immagini, ad esempio, e il gestore di timeout fornisce riduzione se l'attività non viene eseguita in un periodo di tempo specificato. Si noti che la AsyncTimeout proprietà è impostata nella direttiva di pagina.

<%@ Page Language="C#" AsyncTimeout="2"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {
    // Define the asynchronuous task.
    Samples.AspNet.CS.Controls.MyAsyncTask mytask =    
      new Samples.AspNet.CS.Controls.MyAsyncTask();
    PageAsyncTask asynctask = new PageAsyncTask(mytask.OnBegin, mytask.OnEnd, mytask.OnTimeout, null);

    // Register the asynchronous task.
    Page.RegisterAsyncTask(asynctask);

    // Execute the register asynchronous task.
    Page.ExecuteRegisteredAsyncTasks();

    TaskMessage.InnerHtml = mytask.GetAsyncTaskProgress();

  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Asynchronous Task Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <span id="TaskMessage" runat="server">
      </span>
    </div>
    </form>
</body>
</html>
using System;
using System.Web;
using System.Web.UI;
using System.Threading;

namespace Samples.AspNet.CS.Controls
{
	public class MyAsyncTask
	{
		private String _taskprogress;
		private AsyncTaskDelegate _dlgt;

		// Create delegate.
		protected delegate void AsyncTaskDelegate();

		public String GetAsyncTaskProgress()
		{
			return _taskprogress;
		}
		public void DoTheAsyncTask()
		{
			// Introduce an artificial delay to simulate a delayed 
			// asynchronous task. Make this greater than the 
			// AsyncTimeout property.
			Thread.Sleep(TimeSpan.FromSeconds(5.0));
		}

		// Define the method that will get called to
		// start the asynchronous task.
		public IAsyncResult OnBegin(object sender, EventArgs e,
			AsyncCallback cb, object extraData)
		{
			_taskprogress = "Beginning async task.";

			_dlgt = new AsyncTaskDelegate(DoTheAsyncTask);
			IAsyncResult result = _dlgt.BeginInvoke(cb, extraData);

                        return result;
		}

		// Define the method that will get called when
		// the asynchronous task is ended.
		public void OnEnd(IAsyncResult ar)
		{
			_taskprogress = "Asynchronous task completed.";
			_dlgt.EndInvoke(ar);
		}

		// Define the method that will get called if the task
		// is not completed within the asynchronous timeout interval.
		public void OnTimeout(IAsyncResult ar)
		{
			_taskprogress = "Ansynchronous task failed to complete " +
				"because it exceeded the AsyncTimeout parameter.";
		}
	}
}

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