// Main Thread for boosted load
        private void BoostLoadMainThread()
        {
            int i = 0;
            while (gl_TimerIsAlive)
            {
                string userName = "******" + i.ToString();
                string thName = "Worker__" + i.ToString();
                StringBuilder sb_helper2 = new StringBuilder();
                ChatGeneratorClass chatGen = new ChatGeneratorClass();

                SetVolumedMessage();

                Thread th = new Thread(() => HardWorkingMethod(chatGen, gl_SiteId, userName, gl_VolumedMsg, gl_VolumizingCount, sb_helper2, thName));

                if (!gl_ForceClosing) gl_ListOfChats.Add(chatGen);
                gl_ListOfLocalLogs.Add(sb_helper2);
                gl_ListOfThreads.Add(th);

                th.Name = thName;
                th.Start();
                Thread.Sleep(gl_BoostCurrentDelay);
                i++;
            }
        }
        // Main Thread of consequential load profile
        private void ConsequentialMainThread()
        {
            for (int i = 0; i < gl_ConcurrentChats; i++)
            {
                string userName = "******" + i.ToString();
                StringBuilder sb_helper1 = new StringBuilder();
                ChatGeneratorClass chatGen = new ChatGeneratorClass();

                gl_ListOfChats.Add(chatGen);
                gl_ListOfLocalLogs.Add(sb_helper1);

                chatGen.GenerateClientChat(gl_SiteId, widgetTitle, userName, "CONSEQUENTIAL LOAD: first message!!!", gl_VolumedMsg, gl_VolumizingCount, sb_helper1, userName);
            }
        }
        // Main Thread for concurrent load profile
        private void ConcurrentMainThread()
        {
            for (int i = 0; i < gl_ConcurrentChats; i++)
            {
                string userName = "******" + i.ToString();
                string thName = "Worker__" + i.ToString();
                StringBuilder sb_helper2 = new StringBuilder();
                ChatGeneratorClass chatGen = new ChatGeneratorClass();

                SetVolumedMessage();

                Thread th = new Thread(() => HardWorkingMethod(chatGen, gl_SiteId, userName, gl_VolumedMsg, gl_VolumizingCount, sb_helper2, thName));

                if (!gl_ForceClosing) gl_ListOfChats.Add(chatGen);
                gl_ListOfLocalLogs.Add(sb_helper2);
                gl_ListOfThreads.Add(th);

                th.Name = thName;
                //LogAddLine(IDT_LOG, gl_SbLog, msg_thread_start + thName + ".\r\n");
                th.Start();
                //LogAddLine(IDT_LOG, gl_SbLog, "----- Main thread sleeps for " + gl_ThreadDelay + "ms.\r\n");
                Thread.Sleep(gl_SteadyThreadDelay);
            }
        }
        // Worker Thread
        private void HardWorkingMethod(ChatGeneratorClass chatGen, 
            string siteId, 
            string userName, 
            string volumedMsg, 
            int volumizingCount, 
            StringBuilder sb,
            string threadName)
        {
            try
            {
                //string line = "----- Thread name: " + threadName + ".\r\n";
                //LogAddLine(IDT_LOG, sbLog, msg_thread_start + line);

                chatGen.GenerateClientChat(siteId, widgetTitle, userName, "Hello, this is my first message!!!", volumedMsg, volumizingCount, sb, threadName);
                if (gl_ForceClosing) chatGen.GarbageCleaner();

                //LogAddLine(IDT_LOG, sbLog, msg_thread_finished + line);
            }
            catch (Exception ex)
            {
                string err = "EXCEPTION: " + ex.Message;
                //LogAddLine(IDT_LOG, sbLog, msg_err_thread_failed + err);
            }
        }