예제 #1
0
        public void Dispose()
        {
            if (_disposed) return;
            ObjectStateNotifier.RemoveObserver(this);

            try
            {
                var i = Marshal.ReleaseComObject(_exchangeClient);
                Thread.Sleep(10);
                while (i > 0)
                {
                    LogManager.WriteLog("Number of objects in _exchangeClient = " + i, LogManager.enumLogLevel.Info);
                    i = Marshal.ReleaseComObject(_exchangeClient);
                }
                LogManager.WriteLog("|=> _exchangeClient was released successfully.", LogManager.enumLogLevel.Info);

                i = Marshal.ReleaseComObject(_iExchangeAdmin);
                Thread.Sleep(10);
                while (i > 0)
                {
                    LogManager.WriteLog("Number of objects in _iExchangeAdmin = " + i, LogManager.enumLogLevel.Info);
                    i = Marshal.ReleaseComObject(_iExchangeAdmin);
                }
                LogManager.WriteLog("|=> _iExchangeAdmin was released successfully.", LogManager.enumLogLevel.Info);
            }
            catch
            { }

            _iExchangeAdmin = null;
            _exchangeClient = null;
            GC.SuppressFinalize(this);
        }
예제 #2
0
        public void Dispose()
        {
            if (_disposed)
            {
                return;
            }
            ObjectStateNotifier.RemoveObserver(this);

            try
            {
                Releaseobject(_exchangeClientSiteCode, "_exchangeClientSiteCode");
                Releaseobject(_exchangeClientTITOEnDis, "_exchangeClientTITOEnDis");
                Releaseobject(_exchangeClientTITOEXP, "_exchangeClientTITOEXP");

                Releaseobject(_iExchangeAdminSiteCode, "_iExchangeAdminSiteCode");
                Releaseobject(_iExchangeAdminTITOEnDis, "_iExchangeAdminTITOEnDis");
                Releaseobject(_iExchangeAdminTITOEXP, "_iExchangeAdminTITOEXP");

                LogManager.WriteLog("Dispose | All Objects were released successfully.", LogManager.enumLogLevel.Info);
            }
            catch
            { }

            _exchangeClientSiteCode  = null;
            _exchangeClientTITOEnDis = null;
            _exchangeClientTITOEXP   = null;

            _iExchangeAdminSiteCode  = null;
            _iExchangeAdminTITOEnDis = null;
            _iExchangeAdminTITOEXP   = null;

            GC.SuppressFinalize(this);
        }
 /// <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>
 private void Dispose(bool disposing)
 {
     if (!disposed)
     {
         if (disposing)
         {
             ObjectStateNotifier.RemoveObserver(this);
             _threadIndexes.Clear();
             _threadContainers.Clear();
             LogManager.WriteLog("|=> ThreadDispatcher disposed.", LogManager.enumLogLevel.Info);
         }
         disposed = true;
     }
 }