2using System.Threading.Tasks;
18 protected readonly TaskCompletionSource<ReturnType>
task;
21 private readonly Arg1Type arg1;
22 private readonly Arg2Type arg2;
23 private readonly Arg3Type arg3;
35 this.task =
new TaskCompletionSource<ReturnType>();
36 this.callback = Callback;
49 this.task.TrySetResult(this.callback(this.arg1, this.arg2, this.arg3));
53 this.task.TrySetException(ex);
61 public Task<ReturnType>
WaitAsync() => this.task.Task;
Task with one argument to be synchronized.
readonly TaskCompletionSource< ReturnType > task
Task completion source, waiting for the result of the task.
Task< ReturnType > WaitAsync()
Waits for the task to complete.
SyncTask3(Callback3< ReturnType, Arg1Type, Arg2Type, Arg3Type > Callback, Arg1Type Arg1, Arg2Type Arg2, Arg3Type Arg3)
Task to be synchronized.
void Execute()
Executes the task.
Interface for tasks to be synckronized.
delegate ReturnType Callback3< ReturnType, Arg1Type, Arg2Type, Arg3Type >(Arg1Type Arg1, Arg2Type Arg2, Arg3Type Arg3)
Delegate to methods of three parameters and a given return type.