PageAsyncTask Class
Contains information about an asynchronous task registered to a page. This class cannot be inherited.
Assembly: System.Web (in System.Web.dll)
| Name | Description | |
|---|---|---|
![]() | PageAsyncTask(BeginEventHandler^, EndEventHandler^, EndEventHandler^, Object^) | Initializes a new instance of the PageAsyncTask class using the default value for executing in parallel. |
![]() | PageAsyncTask(BeginEventHandler^, EndEventHandler^, EndEventHandler^, Object^, Boolean) | Initializes a new instance of the PageAsyncTask class using the specified value for executing in parallel. |
![]() | PageAsyncTask(Func<CancellationToken, Task^>^) | Initializes a new instance of the PageAsyncTask class using an event handler that enables the task to be canceled. |
![]() | PageAsyncTask(Func<Task^>^) | Initializes a new instance of the PageAsyncTask class using an event handler that enables the task to be handled. |
| Name | Description | |
|---|---|---|
![]() | BeginHandler | Gets the method to call when beginning an asynchronous task. |
![]() | EndHandler | Gets the method to call when the task completes successfully within the time-out period. |
![]() | ExecuteInParallel | Gets a value that indicates whether the task can be processed in parallel with other tasks. |
![]() | State | Gets an object that represents the state of the task. |
![]() | TimeoutHandler | Gets the method to call when the task does not complete successfully within the time-out period. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
ASP.NET version 2.0 allows you to register multiple tasks to a page and run them asynchronously prior to rendering the page. You might specify that a task be run asynchronously if it is a slow process and you do not want other processes to be tied up while it is executing. The asynchronous tasks can be executed in parallel or sequentially.
A PageAsyncTask object must be registered to the page through the RegisterAsyncTask method. The page itself does not have to be processed asynchronously to execute asynchronous tasks. You can set the Async attribute to either true (as shown in the following code example) or false on the page directive and the asynchronous tasks will still be processed asynchronously:
<%@ Page Async="true" %>
When the Async attribute is set to false, the thread that executes the page will be blocked until all asynchronous tasks are complete.
Any asynchronous tasks registered before the PreRenderComplete event will be executed automatically by the page if they have not already been executed. Those asynchronous tasks registered after the PreRenderComplete event must be executed explicitly through the ExecuteRegisteredAsyncTasks method. The ExecuteRegisteredAsyncTasks method can also be used to start tasks before the PreRenderComplete event. The ExecuteRegisteredAsyncTasks method executes all the registered asynchronous tasks on the page that have not been executed.
By default, an asynchronous task will time out if it has not completed within 45 seconds. You can specify a different time-out value in either the Web.config file or the page directive. The <pages> section of the Web.config file contains an asyncTimeout attribute, as shown below.
<system.web>
<pages asyncTimeout="30">
</pages>
</system.web>
The page directive contains an AsyncTimeout attribute.
<%@ Page AsyncTimeout="30" %>
The following code example registers three asynchronous tasks to a page and executes them in parallel. Each task calls a method that merely causes the thread to sleep for 5 seconds.
Available since 2.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

