protected virtual object Invoke(TaskStartInfo startInfo, params object[] args) { if (State == TaskState.Completed || State == TaskState.Canceled || State == TaskState.Idea) { if (this.workItem != null) workItem.Dispose(); this.workItem = new WorkItem(func, args); this.workItem.Task = this; this.workItem.Initialize(); this.startInfo = startInfo; this.startInfo.task = this; TaskPool.Queue(this); return workItem.Result; } else { throw new WorkItemInvokeException("state"); } }
public virtual void Invoke(TaskStartInfo startInfo) { base.Invoke(startInfo, null); }
public bool Restart(TaskStartInfo startInfo) { bool result; if (result = Cancel()) { //Invoke(startInfo); TaskPool.Queue(this); } return result; }