public ActorContext(params SchedulerType[] schedulers) { Contract.Requires(schedulers != null); Contract.Requires(schedulers.Length >= 1); foreach (var type in schedulers) { IScheduler scheduler; switch (type) { case SchedulerType.SingleThread: scheduler = new SingleThreadScheduler(); break; case SchedulerType.ThreadPool: throw new NotImplementedException(); case SchedulerType.TaskParallelLibrary: throw new NotImplementedException(); default: throw new ArgumentException("An invalid scheduler type was given.", "schedulers"); } _schedulers.Add(scheduler); } }