protected virtual void Dispose(bool disposing)
{
if (disposing && !_disposed)
{
ScriptHost[] instances = GetLiveInstancesAndClear();
foreach (var instance in instances)
{
try
{
instance.Dispose();
}
catch (Exception exc) when (!exc.IsFatal())
{
// Best effort
}
}
_stopEvent.Dispose();
_disposed = true;
}
}
}