/// <summary> /// Create a worker thread and start it. Waiting for the next Runnable, /// executing it, and waiting for the next Runnable, until the Shutdown /// flag is set. /// </summary> internal WorkerThread(SimpleThreadPool tp, string name, ThreadPriority prio, bool isDaemon) : this( tp, name, prio, isDaemon, null) { }
/// <summary> /// Create a worker thread, start it, Execute the runnable and terminate /// the thread (one time execution). /// </summary> internal WorkerThread(SimpleThreadPool tp, string name, ThreadPriority prio, bool isDaemon, IThreadRunnable runnable) : base(name) { this.tp = tp; this.runnable = runnable; if (runnable != null) { runOnce = true; } Priority = prio; IsBackground = isDaemon; }
/// <summary> /// Creates an in memory job store (<see cref="RAMJobStore" />) /// The thread priority is set to Thread.NORM_PRIORITY /// </summary> /// <param name="maxThreads">The number of threads in the thread pool</param> public virtual void CreateVolatileScheduler(int maxThreads) { SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, ThreadPriority.Normal); threadPool.Initialize(); IJobStore jobStore = new RAMJobStore(); CreateScheduler(threadPool, jobStore); }