(0) exportieren Drucken
Alle erweitern

Page.AsyncTimeout-Eigenschaft

Diese Eigenschaft unterstützt die .NET Framework-Infrastruktur und ist nicht für die direkte Verwendung in Code bestimmt.

Ruft einen Wert ab, der das Timeoutintervall für das Verarbeiten asynchroner Aufgaben angibt, oder legt diesen fest.

Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)

public TimeSpan AsyncTimeout { get; set; }
/** @property */
public TimeSpan get_AsyncTimeout ()

/** @property */
public void set_AsyncTimeout (TimeSpan value)

public function get AsyncTimeout () : TimeSpan

public function set AsyncTimeout (value : TimeSpan)

Nicht zutreffend.

Eigenschaftenwert

Eine TimeSpan, die das zulässige Zeitintervall für den Abschluss der asynchronen Aufgabe enthält. Das Standardzeitintervall beträgt 45 Sekunden.

Das asynchrone Timeout der Seite stellt die Zeitspanne dar, in der asynchrone Aufgaben für die Seite ausgeführt werden können. In den meisten Fällen wird diese Eigenschaft nicht im Code festgelegt. Legen Sie das asynchrone Timeoutintervall der Seite mit dem pages-Element der Webkonfigurationsdatei oder in der @ Page-Direktive fest. Im Seitenkonfigurationsabschnitt festgelegte Werte werden von der Seitendirektive überschrieben.

Definieren Sie die asynchrone Aufgabe mit der PageAsyncTask-Klasse, und registrieren Sie einen Anfangs-, End- und Timeouthandler. Wenn die asynchrone Aufgabe nicht im angegebenen Zeitinvervall ausgeführt wurde, wird der Timeouthandler aufgerufen.

Im folgenden Codebeispiel wird die Verwendung der AsyncTimeout-Eigenschaft mit der ExecuteRegisteredAsyncTasks-Methode und der RegisterAsyncTask-Methode veranschaulicht. Beachten Sie die Verwendung von Anfangs-, End- und Timeouthandlern. Dieses Beispiel enthält eine künstliche Verzögerung, um den Fall zu veranschaulichen, in dem die Ausführung einer asynchronen Aufgabe die in der AsyncTimeout-Eigenschaft zugewiesene Zeit für die Aufgabe überschreitet. Unter realen Bedingungen können asynchrone Aufgaben beispielsweise für Datenbankaufrufe oder die Bildgenerierung verwendet werden, und der Timeouthandler stellt eine begrenzte Betriebsfähigkeit bereit, falls die Aufgabe nicht in einer angegebenen Zeitspanne ausgeführt wird. Beachten Sie, dass die AsyncTimeout-Eigenschaft in der Seitendirektive festgelegt wird.

<%@ 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.";
		}
	}
}

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Anzeigen:
© 2014 Microsoft