Mercurial > pub > ImplabNet
annotate Implab.Fx/ControlBoundPromise.cs @ 126:f7b2b8bfbb8c v2
minor changes
| author | cin |
|---|---|
| date | Mon, 26 Jan 2015 02:12:01 +0300 |
| parents | 2573b562e328 |
| children | f75cfa58e3d4 |
| rev | line source |
|---|---|
| 72 | 1 using System.Windows.Forms; |
| 2 using System; | |
| 3 | |
| 4 | |
| 5 namespace Implab.Fx { | |
| 6 public class ControlBoundPromise<T> : Promise<T> { | |
| 7 readonly Control m_target; | |
| 8 | |
| 9 public ControlBoundPromise(Control target) { | |
| 10 Safe.ArgumentNotNull(target, "target"); | |
| 11 | |
| 12 m_target = target; | |
| 13 } | |
| 14 | |
|
119
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
15 protected override void SignalSuccess(IDeferred<T> handler) { |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
16 if (m_target.InvokeRequired) |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
17 m_target.BeginInvoke(new Action<IDeferred<T>>(base.SignalSuccess), handler); |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
18 else |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
19 base.SignalSuccess(handler); |
| 72 | 20 } |
| 21 | |
|
119
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
22 protected override void SignalCancelled(IDeferred<T> handler) { |
| 72 | 23 if (m_target.InvokeRequired) |
|
119
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
24 m_target.BeginInvoke(new Action<IDeferred<T>>(base.SignalCancelled), handler); |
| 72 | 25 else |
|
119
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
26 base.SignalCancelled(handler); |
| 72 | 27 } |
|
119
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
28 |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
29 protected override void SignalError(IDeferred<T> handler, Exception error) { |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
30 if (m_target.InvokeRequired) |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
31 m_target.BeginInvoke(new Action<IDeferred<T>,Exception>(base.SignalError), handler, error); |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
32 else |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
33 base.SignalError(handler, error); |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
34 } |
|
2573b562e328
Promises rewritten, added improved version of AsyncQueue
cin
parents:
106
diff
changeset
|
35 |
| 72 | 36 } |
| 37 } | |
| 38 |
