ResultTask

ResultTask class

A Task specialization that returns a result value upon completion.

template<typename T>class ResultTask : public System::Threading::Tasks::Task

Template parameters

ParameterDescription
TThe type of the result value returned by the task

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(const T&)Sets the result value for the task and completes it.
void Complete()Marks the task as completed and finishes task.
Runtime::CompilerServices::ConfiguredResultTaskAwaitable<T> ConfigureAwait(bool) constConfigures how awaits on this result task should behave regarding context capture.
TaskPtr ContinueWith(const Action<RTaskPtr<T>>&)Creates a continuation that executes when the result task completes.
RTaskPtr<TNewResult> ContinueWith(const Func<RTaskPtr<T>, TNewResult>&)Creates a continuation that executes when the result task completes.
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.
T get_Result()Gets the result of the asynchronous operation.
const SharedPtr<TaskScheduler>& get_Scheduler() constGets the scheduler associated with this task.
TaskStatus get_Status() constGets the current status of the task.
Runtime::CompilerServices::ResultTaskAwaiter<T> GetAwaiter() constGets an awaiter for this result 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.
ResultTask(const Func<T>&)Constructs a ResultTask with a function that returns a value.
ResultTask()Internal implementation. Not for user code.
ResultTask(const T&)Internal constructor for creating result tasks with specified result.
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_Result(const T&)Sets the result value for the task.
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.

Remarks

Represents an asynchronous operation that produces a result, similar to System.Threading.Tasks.Task in .NET

See Also