diff options
Diffstat (limited to 'src/mscorlib/src/System/CurrentSystemTimeZone.Cache.cs')
-rw-r--r-- | src/mscorlib/src/System/CurrentSystemTimeZone.Cache.cs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/mscorlib/src/System/CurrentSystemTimeZone.Cache.cs b/src/mscorlib/src/System/CurrentSystemTimeZone.Cache.cs new file mode 100644 index 0000000000..744c697124 --- /dev/null +++ b/src/mscorlib/src/System/CurrentSystemTimeZone.Cache.cs @@ -0,0 +1,35 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections; +using System.Globalization; + +namespace System +{ + internal partial class CurrentSystemTimeZone + { + private DaylightTime GetCachedDaylightChanges(int year) + { + Object objYear = (Object)year; + + if (!m_CachedDaylightChanges.Contains(objYear)) + { + DaylightTime currentDaylightChanges = CreateDaylightChanges(year); + lock (m_CachedDaylightChanges) + { + if (!m_CachedDaylightChanges.Contains(objYear)) + { + m_CachedDaylightChanges.Add(objYear, currentDaylightChanges); + } + } + } + + return (DaylightTime)m_CachedDaylightChanges[objYear]; + } + + // The per-year information is cached in in this instance value. As a result it can + // be cleaned up by CultureInfo.ClearCachedData, which will clear the instance of this object + private readonly Hashtable m_CachedDaylightChanges = new Hashtable(); + } +} |