This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

Page.AsyncTimeout الخاصية

Visual Studio 2010

تدعم واجهة API البنية الأساسية لـ NET Framework. ولم يتم تصميمها للاستخدام مباشرةً من التعليمة البرمجية الخاصة بك.

الحصول أو تعيين القيمة تشير إلى أن الفاصل الزمني لمهلة المستخدمة عند معالجة غير متزامن المهام.

مساحة الاسم:  System.Web.UI
التجميع:  System.Web (في System.Web.dll)

[BrowsableAttribute(false)]
public TimeSpan AsyncTimeout { get; set; }
<asp:Page AsyncTimeout="TimeSpan" />

قيمة الخاصية

النوع: System.TimeSpan
TimeSpan الذي يحتوي على الفترة الزمنية المسموح بها للاكتمال غير متزامن المهمة. الفاصل الزمني الافتراضي هو 45 ثانية.

استثناء:شرط
ArgumentException

تم خاصية التعيين إلى القيمة سالبة.

غير متزامن مهلة الصفحة يمثل مقدار الوقت الذي ينتظر الصفحة لتنفيذ غير متزامن المهام. في معظم الحالات، لا تقم بتعيين هذه خاصية تعليمات برمجية. التعيين الفاصل الزمني لمهلة غير متزامن صفحة استخدام عنصر الصفحات من ملف تكوين ويب أو في التوجيه @ الصفحة. قيم التعيين في صفحة تكوين قسم تتم الكتابة فوق بتوجيه الصفحة.

قم بتعريف مهمة الخاصة بك غير متزامن باستخدام PageAsyncTaskفئة ثم قم بالتسجيل بداية النهاية ومعالج المهلة. إذا لم عملية المهام غير متزامنة في الفاصل الزمني المحدد، سيتم استدعاؤه المعالج مهلة.

يوضح مثال التعليمة البرمجية التالية استخدم AsyncTimeoutخاصية مع ExecuteRegisteredAsyncTasksو RegisterAsyncTaskالأساليب. لاحظ استخدام معالجات البداية والنهاية والمهلة. في المثال، يتم تقديم تأخير زائفة إلى توضيح الحالة مهمة غير متزامن عند تجاوز الوقت المخصص للمهمة كما هو محدد في AsyncTimeoutخاصية. في a real-world السيناريو, an غير متزامن مهمة could be used إلى perform قاعدة بيانات calls أو نسخة generation, for مثال, و the الوقت-خارج handler provides graceful انخفاض الأداء if the مهمة ليس performed في a specified المقدار of الوقت. لاحظ أن AsyncTimeoutخاصية هو تعيين في توجيه الصفحة.


<%@ 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 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: