public void Dispose() { if (Environment.HasShutdownStarted) { return; } m_disposed = true; foreach (var executionContext in m_activeProcessors.Keys) { try { new Task(state => ((RequestExecutionContext)state).Cancel(null), executionContext).Start(); } catch (Exception e) { if (Environment.HasShutdownStarted) { return; } m_tracer.Exception(e); } } m_parsedRequestCache.Dispose(); if (m_storageDriver != null) { m_storageDriver.Dispose(); } }