/// <summary>IDisposable::Dispose - clean up GP if possible</summary>
        public void Dispose()
        {
            if (_gp != null)
            {
                IGPUtilities3 gpUtil = new GPUtilitiesClass();
                gpUtil.ClearInMemoryWorkspace();
                gpUtil.ReleaseInternals();
                gpUtil.RemoveInternalData();
                gpUtil.RemoveInternalValues();

                _gp.ResetEnvironments();
                ComReleaser.ReleaseCOMObject(_gp);
                _gp = null;
            }
        }
        /// <summary>IDisposable::Dispose - clean up GP if possible</summary>
        public void Dispose()
        {
            if (_gp != null)
            {
                IGPUtilities3 gpUtil = new GPUtilitiesClass();
                gpUtil.ClearInMemoryWorkspace();
                gpUtil.ReleaseInternals();
                gpUtil.RemoveInternalData();
                gpUtil.RemoveInternalValues();

                _gp.ResetEnvironments();
                ComReleaser.ReleaseCOMObject(_gp);
                _gp = null;
            }
        }