Process(Action <Process> action, Action <string> logger, string name, Action <Process> onDone, Process parent, int period, ISchedulerManager scheduler, bool useOnce) { this.ID = ++PCOUNTER; this.Name = name ?? "<anonymous>"; this.Period = Math.Max(1, period); this.UseOnce = useOnce; this.action = action; this.logger = logger; this.onDone = onDone; this.Parent = parent; this.scheduler = scheduler; scheduler.Schedule(this); }