public PoolWorker(DedicatedThreadPool pool, int workerId) { _pool = pool; _threadExit = new TaskCompletionSource <object>(); #if UNSAFE_THREADING var thread = new Thread(RunThread, pool.Settings.ThreadMaxStackSize); #else var thread = new Thread(RunThread); #endif thread.IsBackground = pool.Settings.ThreadType == ThreadType.Background; if (pool.Settings.Name != null) { thread.Name = string.Format("{0}_{1}", pool.Settings.Name, workerId); } #if UNSAFE_THREADING if (pool.Settings.ApartmentState != ApartmentState.Unknown) { thread.SetApartmentState(pool.Settings.ApartmentState); } #endif thread.Start(); }
/// <summary> /// TBD /// </summary> /// <param name="pool">TBD</param> public DedicatedThreadPoolTaskScheduler(DedicatedThreadPool pool) { _pool = pool; }