public void ReleaseAllContexts()
{
lock (_locker)
{
var allThreads = _contextManager.GetAllThreads();
foreach (var threadId in allThreads)
{
var threadContext = _contextManager.GetContext(threadId);
var releaseResult = ReleaseContext(threadContext);
if (releaseResult.IsSuccessful)
{
Logger.TraceEvent(TraceEventType.Verbose, 0, string.Format("Context released for thread {0}", threadId));
Logger.Flush();
_contextManager.ContextReleased(threadId);
}
}
}
}