/// <summary>
 /// Purge expired elements from the <see cref="ICnmCache{TKey,TValue}"/>.
 /// </summary>
 /// <remarks>
 /// <para>
 /// Element becomes expired when last access time to it has been longer time than <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/>.
 /// </para>
 /// <para>
 /// Depending on <see cref="ICnmCache{TKey,TValue}"/> implementation, some of expired elements
 /// may stay longer than <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> in the cache.
 /// </para>
 /// </remarks>
 /// <seealso cref="ICnmCache{TKey,TValue}.IsTimeLimited"/>
 /// <seealso cref="ICnmCache{TKey,TValue}.ExpirationTime"/>
 /// <seealso cref="ICnmCache{TKey,TValue}.Set"/>
 /// <seealso cref="ICnmCache{TKey,TValue}.Remove"/>
 /// <seealso cref="ICnmCache{TKey,TValue}.RemoveRange"/>
 /// <seealso cref="ICnmCache{TKey,TValue}.TryGetValue"/>
 /// <seealso cref="ICnmCache{TKey,TValue}.Clear"/>
 public void PurgeExpired()
 {
     lock (m_syncRoot)
     {
         m_cache.PurgeExpired();
     }
 }