public AsyncEntryBlockUC(EntryBlockUC?EntryBlock, TaskCompletionSource <EntryBlockUC> tcs, ConfigCompletionContinuation configContinuation = ConfigCompletionContinuation.ContinueOnDefaultContext) { this.EntryBlock = EntryBlock; this.TaskAwaiter = tcs?.Task.ConfigureAwait(configContinuation.ContinueOnCapturedContext()).GetAwaiter(); if (!this.EntryBlock.HasValue && !this.TaskAwaiter.HasValue) { throw new ArgumentNullException($"{nameof(EntryBlock)}, {nameof(TaskAwaiter)}"); } }
public AsyncEntryBlockUC(EntryBlockUC entryBlockForTaskPredicate, Task taskPredicate, ConfigCompletionContinuation configContinuation = ConfigCompletionContinuation.ContinueOnDefaultContext) { EntryBlock = null; TaskAwaiter = null; EntryBlockForTaskPredicate = entryBlockForTaskPredicate; TaskBoolPredicateAwaiter = null; TaskPredicateAwaiter = taskPredicate.ConfigureAwait(configContinuation.ContinueOnCapturedContext()).GetAwaiter(); if (!TaskPredicateAwaiter.HasValue) { throw new ArgumentNullException(nameof(taskPredicate)); } }
public AsyncEntryBlockUC(EntryBlockUC?entryBlock, TaskCompletionSource <EntryBlockUC> tcs, ConfigCompletionContinuation configContinuation = ConfigCompletionContinuation.ContinueOnDefaultContext) { EntryBlock = entryBlock; TaskAwaiter = tcs?.Task.ConfigureAwait(configContinuation.ContinueOnCapturedContext()).GetAwaiter(); EntryBlockForTaskPredicate = null; TaskBoolPredicateAwaiter = null; TaskPredicateAwaiter = null; if (!EntryBlock.HasValue && !TaskAwaiter.HasValue) { throw new ArgumentNullException($"{nameof(entryBlock)}, {nameof(tcs)}"); } }
AsyncTimerProcessorResult(TaskCompletionSource <TArg> tcs, Task <TaskCompletionSource <TArg> > wrappedTCS, ConfigCompletionContinuation configContinuation = ConfigCompletionContinuation.ContinueOnDefaultContext) { TCS = tcs; WrappedTCS = wrappedTCS; if (tcs == null) { throw new ArgumentNullException(nameof(tcs)); } if (wrappedTCS == null) { throw new ArgumentNullException(nameof(wrappedTCS)); } TaskAwaiter = wrappedTCS.ConfigureAwait(configContinuation.ContinueOnCapturedContext()).GetAwaiter(); }
/// <summary> /// <see cref="TaskCompletionSource{TResult}"/> created with /// <see cref="TaskCreationOptions.RunContinuationsAsynchronously"/> if request in /// <see cref="taskCreationOptions"/> /// </summary> protected ACompletionUC(TaskCreationOptions taskCreationOptions, ConfigCompletionContinuation cfgContinuationContext = ConfigCompletionContinuation.ContinueOnDefaultContext) { TaskCompletionSource = new TaskCompletionSource <object>(taskCreationOptions & TaskCreationOptions.RunContinuationsAsynchronously); ConfiguredTaskAwaiter = TaskCompletionSource.Task.ConfigureAwait(cfgContinuationContext.ContinueOnCapturedContext()).GetAwaiter(); }