/// <summary>
/// Releases unmanaged and - optionally - managed resources.
/// </summary>
/// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
if (output != null)
{
output.Stop();
output.Dispose();
output = null;
}
if (reduce != null)
{
reduce.Dispose();
reduce = null;
}
}
_disposed = true;
}
}