/// <summary> /// Initializes a new instance of the <see cref="JoinableTask"/> class. /// </summary> /// <param name="owner">The instance that began the async operation.</param> /// <param name="synchronouslyBlocking">A value indicating whether the launching thread will synchronously block for this job's completion.</param> /// <param name="creationOptions">The <see cref="JoinableTaskCreationOptions"/> used to customize the task's behavior.</param> /// <param name="initialDelegate">The entry method's info for diagnostics.</param> internal JoinableTask(JoinableTaskFactory owner, bool synchronouslyBlocking, JoinableTaskCreationOptions creationOptions, Delegate initialDelegate) { Requires.NotNull(owner, nameof(owner)); this.owner = owner; if (synchronouslyBlocking) { this.state |= JoinableTaskFlags.StartedSynchronously | JoinableTaskFlags.CompletingSynchronously; } if (owner.Context.IsOnMainThread) { this.state |= JoinableTaskFlags.StartedOnMainThread; if (synchronouslyBlocking) { this.state |= JoinableTaskFlags.SynchronouslyBlockingMainThread; } } this.creationOptions = creationOptions; this.owner.Context.OnJoinableTaskStarted(this); this.initialDelegate = initialDelegate; }
/// <summary> /// Initializes a new instance of the <see cref="JoinableTask{T}"/> class. /// </summary> /// <param name="owner">The instance that began the async operation.</param> /// <param name="synchronouslyBlocking">A value indicating whether the launching thread will synchronously block for this job's completion.</param> /// <param name="creationOptions">The <see cref="JoinableTaskCreationOptions"/> used to customize the task's behavior.</param> /// <param name="initialDelegate">The entry method's info for diagnostics.</param> internal JoinableTask(JoinableTaskFactory owner, bool synchronouslyBlocking, JoinableTaskCreationOptions creationOptions, Delegate initialDelegate) : base(owner, synchronouslyBlocking, creationOptions, initialDelegate) { }