Task

Task class

Represents an asynchronous operation that can be awaited and composed with other tasks.

class Task : public System::IDisposable

Methods

MethodDescription
void Activate(const SharedPtr<TaskScheduler>&)Activates the task for execution on a scheduler.
void AddCompletionAction(const Action<>&)Adds a continuation action to be executed upon completion.
void Cancel()Marks the task as cancelled and finishes task.
void Complete()Marks the task as completed and finishes task.
Runtime::CompilerServices::ConfiguredTaskAwaitable ConfigureAwait(bool) constConfigures how awaits on this task should behave regarding context capture.
TaskPtr ContinueWith(const Action<TaskPtr>&)Creates a continuation that executes when the task completes.
RTaskPtr<TResult> ContinueWith(const Func<TaskPtr, TResult>&)Creates a continuation that executes when the task completes.
void Deactivate()Deactivates the task for execution on its curent scheduler if any.
void Dispose() overrideReleases resources associated with the task.
virtual bool Equals(ptr)Compares objects using C# Object.Equals semantics.
static std::enable_if<IsSmartPtr<T1>::value&&IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares reference type objects in C# style.
static std::enable_if<!IsSmartPtr<T1>::value&&!IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares value type objects in C# style.
static bool Equals(float const&, float const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
static bool Equals(double const&, double const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
void Execute()Executes the task’s function.
virtual bool FastCast(const Details::FastRttiBase&, void **) constFor internal purposes only.
const SharedPtr<Object>& get_AsyncState() constGets the user-defined state object associated with the task.
static const TaskPtr& get_CompletedTask()Gets a completed task (singleton)
static Nullable<int32_t> get_CurrentId()
AggregateException get_Exception() constGets the ID for task.
int32_t get_Id() const
bool get_IsCanceled() constGets whether the task completed due to cancellation.
bool get_IsCompleted() constGets whether the task has completed.
bool get_IsFaulted() constGets whether the task completed due to an unhandled exception.
const SharedPtr<TaskScheduler>& get_Scheduler() constGets the scheduler associated with this task.
TaskStatus get_Status() constGets the current status of the task.
Runtime::CompilerServices::TaskAwaiter GetAwaiter() constGets an awaiter for this task for use with Await.
Detail::SmartPtrCounter * GetCounter()Gets reference counter data structure associated with the object.
virtual int32_t GetHashCode() constAnalog of C# Object.GetHashCode() method. Enables hashing of custom objects.
virtual const TypeInfo& GetType() constGets actual type of object. Analog of C# System.Object.GetType() call.
virtual bool Is(const TypeInfo&) constCheck if object represents an instance of type described by targetType. Analog of C# ‘is’ operator.
void Lock()Implements C# lock() statement locking. Call directly or use LockContext sentry object.
virtual ptr MemberwiseClone() constAnalog of C# Object.MemberwiseClone() method. Enables cloning custom types.
Object()Creates object. Initializes all internal data structures.
Object(Object const&)Copy constructor. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
Object& operator=(Object const&)Assignment operator. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
static bool ReferenceEquals(ptr const&, ptr const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, T const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, std::nullptr_t)Reference-compares value type object with nullptr.
bool ReferenceEquals(String const&, std::nullptr_t)Specialization of Object::ReferenceEquals for case of string and nullptr.
bool ReferenceEquals(String const&, String const&)Specialization of Object::ReferenceEquals for case of strings.
int RemovedSharedRefs(int)Decreases shared reference count by specified value.
void RunSynchronously()Runs the task synchronously on the current thread.
void RunSynchronously(const SharedPtr<TaskScheduler>&)Runs the task synchronously using the specified scheduler.
void set_Function(const FunctionT&)Sets the internal function to execute.
void set_Scheduler(const SharedPtr<TaskScheduler>&)Sets the scheduler associated with this task.
void set_Status(TaskStatus)Sets the task status.
virtual void SetTemplateWeakPtr(uint32_t)Set n’th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode.
int SharedCount() constGets current value of shared reference counter.
Object * SharedRefAdded()Increments shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
int SharedRefRemovedSafe()Decrements and returns shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void Start()Starts the task execution using the default scheduler.
void Start(const SharedPtr<TaskScheduler>&)Starts the task execution using the specified scheduler.
Task(const Action<>&)Constructs a Task with an action to execute.
Task(const Action<>&, const CancellationToken&)Constructs a Task with an action and cancellation token.
Task(const Action<SharedPtr<Object>>&, const SharedPtr<Object>&)Constructs a Task with a stateful action and state object.
Task(const Action<SharedPtr<Object>>&, const SharedPtr<Object>&, const CancellationToken&)Constructs a Task with stateful action, state, and cancellation token.
Task()Internal constructor for creating uninitialized tasks.
virtual String ToString() constAnalog of C# Object.ToString() method. Enables converting custom objects to string.
static const TypeInfo& Type()Implements C# typeof(System.Object) construct.
void Unlock()Implements C# lock() statement unlocking. Call directly or use LockContext sentry object.
void Wait(const CancellationToken&)Waits for the task to complete with cancellation support.
void Wait()Waits for the task to complete.
Detail::SmartPtrCounter * WeakRefAdded()Increments weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void WeakRefRemoved()Decrements weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
virtual ~Object()Destroys object. Frees all internal data structures.
~Task()Destructor.

Typedefs

TypedefDescription
FunctionTInternal implementation. Not for user code.

Remarks

Provides a C++ implementation similar to System.Threading.Tasks.Task in .NET, supporting cancellation, continuations, and async/await patterns

See Also