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);
}