145
|
1 using System;
|
|
2
|
|
3 namespace Implab {
|
|
4 public class ActionTask<T> : ActionTaskBase, IDeferred<T> {
|
|
5 readonly Action<T> m_task;
|
149
|
6 public ActionTask(Action<T> task, Action<Exception> error, Action<Exception> cancel, bool autoCancellable) : base(error,cancel, autoCancellable) {
|
145
|
7 m_task = task;
|
|
8 }
|
|
9
|
|
10 public void Resolve(T value) {
|
|
11 if (m_task != null && LockCancelation()) {
|
|
12 try {
|
|
13 m_task(value);
|
|
14 SetResult();
|
|
15 } catch(Exception err) {
|
|
16 HandleErrorInternal(err);
|
|
17 }
|
|
18 }
|
|
19 }
|
|
20 }
|
|
21 }
|
|
22
|