Task Class

This topic describes several internal members of the System.Threading.Tasks.Task class to help you implement a custom debugger. For general information about this class, see Task.

Note

This information is specific to .NET Framework 4 and is subject to change in a future release.

Because you cannot access these members from the .NET Framework, this topic provides syntax in Microsoft intermediate language (MSIL). For more information about MSIL, see Compiling to MSIL.

Namespace:  System.Threading.Tasks

Assembly:  mscorlib (in mscorlib.dll)

.class public auto ansi System.Threading.Tasks.Task
       extends System.Object
       implements System.Threading.IThreadPoolWorkItem,
                  System.IAsyncResult,
                  System.IDisposable,
                  System.Threading.ICancelableOperation

Members

Classes

Name

Description

ContingentProperties

Contains additional properties for a Task object.

Fields

Name

Description

m_action

The delegate that represents the code to execute in the Task object.

m_contingentProperties

Stores additional properties of the Task object.

m_parent

The backing field for the TaskParent() property.

m_stateFlags

Stores information about the current state of the Task object.

m_stateObject

An object that represents data that will be used by the action.

m_taskId

The backing field for the Task.Id property.

s_taskIdCounter

The next available identifier for a Task object.

TASK_STATE_CANCELED

Indicates that the task was canceled before it reached the running state, or that the task acknowledged its cancellation and completed without exception.

TASK_STATE_EXECUTED

Indicates that the task is running.

TASK_STATE_FAULTED

Indicates that the task completed because of an unhandled exception.

TASK_STATE_RAN_TO_COMPLETION

Indicates that the task completed execution successfully.

TASK_STATE_WAITING_ON_CHILDREN

Indicates that the task has finished executing its delegate and is implicitly waiting for attached child tasks to finish.

Remarks

The following internal methods are useful to a debugger engine because they mark the entrance to Task code execution:

  • Execute

  • ExecuteEntry

  • ExecuteWithThreadLocal

  • Finish

  • InnerInvoke

  • InternalWait

See Also

Concepts

Parallel Extension Internals for the .NET Framework