예제 #1
0
			/// --------------------------------------------------------------------------------
			/// <summary>
			/// C'tor. Lock the ICU class.
			/// </summary>
			/// --------------------------------------------------------------------------------
			public RestrictAccess()
			{
				m_locker = LgIcuLockingClass.Create();
				m_locker.Lock();
			}
예제 #2
0
			/// <summary>
			/// Executes in two distinct scenarios.
			///
			/// 1. If disposing is true, the method has been called directly
			/// or indirectly by a user's code via the Dispose method.
			/// Both managed and unmanaged resources can be disposed.
			///
			/// 2. If disposing is false, the method has been called by the
			/// runtime from inside the finalizer and you should not reference (access)
			/// other managed objects, as they already have been garbage collected.
			/// Only unmanaged resources can be disposed.
			/// </summary>
			/// <param name="disposing"></param>
			/// <remarks>
			/// If any exceptions are thrown, that is fine.
			/// If the method is being done in a finalizer, it will be ignored.
			/// If it is thrown by client code calling Dispose,
			/// it needs to be handled by fixing the bug.
			///
			/// If subclasses override this method, they should call the base implementation.
			/// </remarks>
			protected virtual void Dispose(bool disposing)
			{
				//Debug.WriteLineIf(!disposing, "****************** " + GetType().Name + " 'disposing' is false. ******************");
				// Must not be run more than once.
				if (m_isDisposed)
					return;


				if (disposing)
				{
					// Dispose managed resources here.
					if (m_locker != null)
						m_locker.Unlock();
				}

				// Dispose unmanaged resources here, whether disposing is true or false.
				m_locker = null;

				m_isDisposed = true;
			}