Centreon_EventLog_2_Syslog.Program.StartThread C# (CSharp) Method

StartThread() private method

Start one thread ThreadFilter by event log name
private StartThread ( ) : void
return void
        private void StartThread()
        {
            deb.Write("Preparation of Threads", "Start threads", DateTime.Now, 2);

            ArrayList list = new ArrayList(iFilters.Keys);
            String[] eventLogNames = (String[])list.ToArray(typeof(string));

            doneEvents = new ManualResetEvent[eventLogNames.Length];

            try
            {
                int i = 0;
                foreach (String eventLog in eventLogNames)
                {
                    try
                    {
                        ThreadFilter[] filterArray = new ThreadFilter[eventLogNames.Length];

                        doneEvents[i] = new ManualResetEvent(false);
                        ThreadFilter tf = new ThreadFilter(eventLog, ref syslogServer, (ArrayList)iFilters[eventLog], (ArrayList)eFilters[eventLog], ref deb, lastExecTime, maxExecTime, doneEvents[i]);
                        filterArray[i] = tf;

                        ThreadPool.QueueUserWorkItem(tf.ThreadLoop, i);
                    }
                    catch (System.NullReferenceException e)
                    {
                        deb.Write("Preparation of Threads", "401 - Problem starting thread for " + eventLog + "package rules due to: " + e.Message, DateTime.Now, 1);
                    }
                    i++;
                }
            }
            catch (System.NullReferenceException e)
            {
                deb.Write("Preparation of Threads", "402 - Problem starting threads due to: " + e.Message, DateTime.Now, 1);
                System.Environment.Exit(-1);
            }

            deb.Write("Preparation of Threads", "End of starting threads", DateTime.Now, 2);
        }