private void Worker()
{
try
{
DeleteOldTraces(_workDirectory);
var instances = new Dictionary<string, TraceInfo>();
int timeToWait;
do
{
var processingStart = Stopwatch.StartNew();
FindInstanceTraces(instances);
ReadInstanceTraces(instances);
// calculate time to wait
var elapsed = (int) processingStart.ElapsedMilliseconds;
timeToWait = Properties.Settings.Default.SqlTraceReaderWorkerLoopSleep - elapsed;
if (timeToWait < 0) timeToWait = 0;
} while (!_termHandle.WaitOne(timeToWait));
}
catch (Exception ex)
{
Exit(string.Format("SqlTraceReader worker exiting because of exception. {0}", ex));
}
}