internal Task(Action <object> action, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions, Task parent) { this.taskCreationOptions = creationOptions; this.action = action; this.state = state; this.taskId = Interlocked.Increment(ref id); this.status = cancellationToken.IsCancellationRequested ? TaskStatus.Canceled : TaskStatus.Created; this.token = cancellationToken; this.parent = parent; // Process taskCreationOptions if (CheckTaskOptions(taskCreationOptions, TaskCreationOptions.AttachedToParent) && parent != null) { parent.AddChild(); } if (token.CanBeCanceled) { cancelation_registration = token.Register(l => ((Task)l).CancelReal(), this); } }
public Task(Action <object> action, object state, CancellationToken token, TaskCreationOptions options) { this.taskCreationOptions = options; this.action = action == null ? EmptyFunc : action; this.state = state; this.taskId = Interlocked.Increment(ref id); this.status = TaskStatus.Created; this.token = token; // Process taskCreationOptions if (CheckTaskOptions(taskCreationOptions, TaskCreationOptions.AttachedToParent)) { parent = current; if (parent != null) { parent.AddChild(); } } }
internal Task(Action <object> action, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions, Task parent) { this.taskCreationOptions = creationOptions; this.action = action; this.state = state; this.taskId = Interlocked.Increment(ref id); this.status = TaskStatus.Created; this.token = cancellationToken; this.parent = parent; // Process taskCreationOptions if (CheckTaskOptions(taskCreationOptions, TaskCreationOptions.AttachedToParent) && parent != null) { parent.AddChild(); } }
public Task(Action <object> action, object state, TaskCreationOptions options) { this.taskCreationOptions = options; this.action = action == null ? EmptyFunc : action; this.state = state; this.taskId = Interlocked.Increment(ref id); this.status = TaskStatus.Created; // Process taskCreationOptions if (CheckTaskOptions(taskCreationOptions, TaskCreationOptions.DetachedFromParent)) { parent = null; } else if (parent != null) { parent.AddChild(); } respectParentCancellation = CheckTaskOptions(taskCreationOptions, TaskCreationOptions.RespectParentCancellation); }
internal Task(TaskActionInvoker invoker, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions, Task parent = null, Task contAncestor = null) { this.invoker = invoker; this.taskCreationOptions = creationOptions; this.state = state; this.taskId = Interlocked.Increment(ref id); this.status = cancellationToken.IsCancellationRequested ? TaskStatus.Canceled : TaskStatus.Created; this.token = cancellationToken; this.parent = parent = parent == null ? current : parent; this.contAncestor = contAncestor; // Process taskCreationOptions if (CheckTaskOptions(taskCreationOptions, TaskCreationOptions.AttachedToParent) && parent != null) { parent.AddChild(); } if (token.CanBeCanceled) { cancellationRegistration = token.Register(l => ((Task)l).CancelReal(), this); } }
internal Task (TaskActionInvoker invoker, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions, Task parent = null, Task contAncestor = null, bool ignoreCancellation = false) { this.invoker = invoker; this.creationOptions = creationOptions; this.state = state; this.taskId = Interlocked.Increment (ref id); this.token = cancellationToken; this.parent = parent = parent == null ? current : parent; this.contAncestor = contAncestor; this.status = cancellationToken.IsCancellationRequested && !ignoreCancellation ? TaskStatus.Canceled : TaskStatus.Created; // Process creationOptions #if NET_4_5 if (parent != null && HasFlag (creationOptions, TaskCreationOptions.AttachedToParent) && !HasFlag (parent.CreationOptions, TaskCreationOptions.DenyChildAttach)) #else if (parent != null && HasFlag (creationOptions, TaskCreationOptions.AttachedToParent)) #endif parent.AddChild (); if (token.CanBeCanceled && !ignoreCancellation) cancellationRegistration = token.Register (l => ((Task) l).CancelReal (), this); }