Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
SyncTask3.cs
1using System;
2using System.Threading.Tasks;
3
5{
13 public class SyncTask3<ReturnType, Arg1Type, Arg2Type, Arg3Type> : ISyncTask
14 {
18 protected readonly TaskCompletionSource<ReturnType> task;
19
21 private readonly Arg1Type arg1;
22 private readonly Arg2Type arg2;
23 private readonly Arg3Type arg3;
24
32 public SyncTask3(Callback3<ReturnType, Arg1Type, Arg2Type, Arg3Type> Callback, Arg1Type Arg1, Arg2Type Arg2,
33 Arg3Type Arg3)
34 {
35 this.task = new TaskCompletionSource<ReturnType>();
36 this.callback = Callback;
37 this.arg1 = Arg1;
38 this.arg2 = Arg2;
39 this.arg3 = Arg3;
40 }
41
45 public void Execute()
46 {
47 try
48 {
49 this.task.TrySetResult(this.callback(this.arg1, this.arg2, this.arg3));
50 }
51 catch (Exception ex)
52 {
53 this.task.TrySetException(ex);
54 }
55 }
56
61 public Task<ReturnType> WaitAsync() => this.task.Task;
62 }
63}
Task with one argument to be synchronized.
Definition: SyncTask3.cs:14
readonly TaskCompletionSource< ReturnType > task
Task completion source, waiting for the result of the task.
Definition: SyncTask3.cs:18
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.
Definition: SyncTask3.cs:32
void Execute()
Executes the task.
Definition: SyncTask3.cs:45
Interface for tasks to be synckronized.
Definition: ISyncTask.cs:7
delegate ReturnType Callback3< ReturnType, Arg1Type, Arg2Type, Arg3Type >(Arg1Type Arg1, Arg2Type Arg2, Arg3Type Arg3)
Delegate to methods of three parameters and a given return type.