public CThread()
 {
     if (Type == null)
     {
         Type = new CThread.Types(Types.Unmanaged);
     }
     if (Id.Length == 0)
     {
         Id = CFunctions.GenerateUID();
     }
 }
        // zzz - need to improve http://stackoverflow.com/questions/8028483/managing-threads-using-listthread

        public CThreadManager()
        {
            // start session manager thread
            Thread.CurrentThread.Name = CFunctions.GenerateUID();
            ThreadManager             = new CThread()
            {
                Worker = new Thread(new ThreadStart(ManageThreads))
            };
            Log.Write("[Threading] Primary thread (" + Thread.CurrentThread.Name + ") of type: '" + ThreadManager.Type + "' with scheduler id: " + Thread.CurrentThread.ManagedThreadId + " started at: " + Core._StartTime, 7);
            ThreadManager.Start();
            Log.Write("[Threading] Starting new thread (" + ThreadManager.Id + ") of type: '" + ThreadManager.Type + "' with scheduler id: " + ThreadManager.Worker.ManagedThreadId, 7);
        }