public static QTask Async(Action callback, int time) { var task = QTask.Create(callback, QTargetThread.ThreadPool); Defer(() => { task.Invoke(); }, time); return(task); }
public QTask ContinueWith(Action callback) { var task = QTask.Create(this, callback, QTargetThread.SameThread); chains.Add(task); return(task); }
public static QTask Create(Action callback, QTargetThread type, QTaskOption option = QTaskOption.None) { var task = new QTask(null, callback, type, option); return(task); }
public static QTask Defer(Action callback, int time) { var task = QTask.Create(callback, QTargetThread.MainThread); lock (tasks) tasks.Add(currentTick + time, task); return(task); }
private QTask(QTask parent, Action callback, QTargetThread type, QTaskOption option) { this.syncObject = new object(); this.parent = parent; this.callback = callback; this.chains = new List <QTask>(); this.type = type; this.option = option; }