public static void Terminate(bool waitAll = false)
{
try
{
lock (Sync)
{
foreach (var session in Sessions)
{
session.Dispose();
}
}
_terminated = true;
var period = waitAll ? Timeout.Infinite : 5 * 1000;
LoggingThread.Join(period);
LoggingThread.Abort();
lock (Sync)
{
Sessions.Clear();
}
}
catch (Exception exc)
{
Trace.WriteLine(exc);
}
}