49 instantiations of ConcurrentDictionary
mscorlib (6)
system\diagnostics\eventing\eventsource.cs (2)
5614m_activeActivities = new ConcurrentDictionary<Guid, int>(); 5615m_rootActiveActivities = new ConcurrentDictionary<Guid, Tuple<Guid, int>>();
system\runtime\serialization\formatters\binary\binaryformatter.cs (1)
54private static Lazy<ConcurrentDictionary<Type, TypeInformation>> concurrentTypeNameCache = new Lazy<ConcurrentDictionary<Type, TypeInformation>>(() => new ConcurrentDictionary<Type, TypeInformation>());
system\runtime\serialization\formatters\binary\binaryutilclasses.cs (1)
560static System.Collections.Concurrent.ConcurrentDictionary<string, object> ht = new System.Collections.Concurrent.ConcurrentDictionary<string, object>();
system\runtime\serialization\formatterservices.cs (1)
38internal static ConcurrentDictionary<MemberHolder, MemberInfo[]> m_MemberInfoTable = new ConcurrentDictionary<MemberHolder, MemberInfo[]>();
system\threading\Tasks\ConcurrentExclusiveSchedulerPair.cs (1)
40private readonly ConcurrentDictionary<int, ProcessingMode> m_threadProcessingMapping = new ConcurrentDictionary<int, ProcessingMode>();
PresentationFramework (2)
src\Framework\System\Windows\Markup\Baml2006\WpfXamlType.cs (2)
56_members = new ConcurrentDictionary<string, XamlMember>(ConcurrencyLevel, Capacity); 68_attachableMembers = new ConcurrentDictionary<string, XamlMember>(ConcurrencyLevel, Capacity);
System (2)
net\System\Net\_AuthenticationManager2.cs (1)
326this.moduleList = new ConcurrentDictionary<string, IAuthenticationModule>();
net\System\Net\_SSPIWrapper.cs (1)
91return new ConcurrentDictionary<string, SafeFreeCredentials>(Environment.ProcessorCount, s_DefaultCredentialsHandleCacheSize);
System.Activities (1)
System\Activities\XamlIntegration\TypeConverterBase.cs (1)
21return new ConcurrentDictionary<Type, TypeConverterHelper>();
System.ComponentModel.DataAnnotations (3)
DataAnnotations\AssociatedMetadataTypeTypeDescriptor.cs (3)
83private static readonly ConcurrentDictionary<Type, Type> _metadataTypeCache = new ConcurrentDictionary<Type, Type>(); 86private static readonly ConcurrentDictionary<Tuple<Type, string>, Attribute[]> _typeMemberCache = new ConcurrentDictionary<Tuple<Type, string>, Attribute[]>(); 89private static readonly ConcurrentDictionary<Tuple<Type, Type>, bool> _validatedMetadataTypeCache = new ConcurrentDictionary<Tuple<Type, Type>, bool>();
System.Data (9)
fx\src\data\System\Data\Common\DataStorage.cs (1)
132private readonly static ConcurrentDictionary<Type, Tuple<bool, bool, bool, bool>> _typeImplementsInterface = new ConcurrentDictionary<Type, Tuple<bool, bool, bool, bool>>();
fx\src\data\System\Data\ProviderBase\DbConnectionPool.cs (1)
495_pooledDbAuthenticationContexts = new ConcurrentDictionary<DbConnectionPoolAuthenticationContextKey, DbConnectionPoolAuthenticationContext>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/,
fx\src\data\System\Data\ProviderBase\DbConnectionPoolGroup.cs (3)
65_poolCollection = new ConcurrentDictionary<DbConnectionPoolIdentity, DbConnectionPool>(); 130_poolCollection = new ConcurrentDictionary<DbConnectionPoolIdentity, DbConnectionPool>(); 250var newPoolCollection = new ConcurrentDictionary<DbConnectionPoolIdentity, DbConnectionPool>();
fx\src\data\System\Data\SqlClient\SqlAeadAes256CbcHmac256Factory.cs (1)
23new ConcurrentDictionary<string, SqlAeadAes256CbcHmac256Algorithm>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/, capacity: 2);
fx\src\data\System\Data\SqlClient\SqlAes256CbcFactory.cs (1)
25new ConcurrentDictionary<string, SqlAes256CbcAlgorithm>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/, capacity: 2);
fx\src\data\System\Data\SqlClient\SqlClientEncryptionAlgorithmFactoryList.cs (1)
23_encryptionAlgoFactoryList = new ConcurrentDictionary<string, SqlClientEncryptionAlgorithmFactory>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/, capacity: 2);
fx\src\data\System\Data\SqlClient\SqlConnection.cs (1)
88= new ConcurrentDictionary<string, IList<string>>(concurrencyLevel: 4 * Environment.ProcessorCount /* default value in ConcurrentDictionary*/,
System.Data.Entity (2)
System\Data\Common\QueryCache\CompiledQueryCacheEntry.cs (1)
46_plans = new ConcurrentDictionary<string,ObjectQueryExecutionPlan>();
System\Data\Mapping\StorageMappingItemCollection.cs (1)
64new ConcurrentDictionary<Tuple<EntitySetBase, EntityTypeBase, InterestingMembersKind>, ReadOnlyCollection<EdmMember>>();
System.ServiceModel (2)
System\ServiceModel\Channels\HttpHeaderInfo.cs (1)
44knownHeadersInfos = new ConcurrentDictionary<string, HttpHeaderInfo>(
System\UriTemplate.cs (1)
948this.unescapedDefaults = new ConcurrentDictionary<string, string>(StringComparer.Ordinal);
System.Web (17)
Compilation\AssemblyResolver.cs (1)
72() => new ConcurrentDictionary<string, Version>(StringComparer.OrdinalIgnoreCase));
Compilation\BuildProvidersCompiler.cs (2)
772ConcurrentDictionary<AssemblyBuilder, CompilerResults> buildResults = new ConcurrentDictionary<AssemblyBuilder, CompilerResults>(); 773ConcurrentDictionary<AssemblyBuilder, CompilerResults> buildErrors = new ConcurrentDictionary<AssemblyBuilder, CompilerResults>();
Configuration\MTConfigUtil.cs (2)
16new ConcurrentDictionary<Tuple<Type, VirtualPath>, ConfigurationSection>(); 19new ConcurrentDictionary<VirtualPath, Configuration>();
Hosting\CustomRuntimeManager.cs (1)
17private readonly ConcurrentDictionary<CustomRuntimeRegistration, object> _activeRegistrations = new ConcurrentDictionary<CustomRuntimeRegistration, object>();
Hosting\SuspendManager.cs (1)
21private readonly ConcurrentDictionary<ISuspendibleRegisteredObject, object> _registeredObjects = new ConcurrentDictionary<ISuspendibleRegisteredObject, object>();
State\SessionStateModule.cs (1)
159private static ConcurrentDictionary<string, int> s_queuedRequestsNumPerSession = new ConcurrentDictionary<string, int>();
UI\DataBinder.cs (1)
27private static readonly ConcurrentDictionary<Type, PropertyDescriptorCollection> propertyCache = new ConcurrentDictionary<Type, PropertyDescriptorCollection>();
UI\TargetFrameworkUtil.cs (8)
30_events = new ConcurrentDictionary<string, EventInfo>(); 38_fields = new ConcurrentDictionary<Tuple<string, int>, FieldInfo>(); 46_properties = new ConcurrentDictionary<Tuple<string, int>, PropertyInfo>(); 53private static ConcurrentDictionary<Type, MemberCache> s_memberCache = new ConcurrentDictionary<Type, MemberCache>(); 58new ConcurrentDictionary<Type, PropertyDescriptorCollection>(); 60new ConcurrentDictionary<object, PropertyDescriptorCollection>(); 62new ConcurrentDictionary<Type, EventDescriptorCollection>(); 64private static ConcurrentDictionary<Type, bool> s_isFrameworkType = new ConcurrentDictionary<Type, bool>();
System.Web.DynamicData (2)
DynamicData\MetaModel.cs (1)
34private readonly static ConcurrentDictionary<Type, bool> s_registeredMetadataTypes = new ConcurrentDictionary<Type, bool>();
UI\DataControlExtensions.cs (1)
8private readonly static ConcurrentDictionary<Type, MetaTable> s_MetaTableCache = new ConcurrentDictionary<Type, MetaTable>();
System.Web.Extensions (2)
UI\AssemblyCache.cs (1)
34new ConcurrentDictionary<Assembly, AjaxFrameworkAssemblyAttribute>();
UI\ScriptResourceMapping.cs (1)
11new ConcurrentDictionary<Tuple<String, Assembly>, ScriptResourceDefinition>();
System.Windows.Forms (1)
winforms\Managed\System\WinForms\ToolStripManager.cs (1)
36private static ConcurrentDictionary<int, Font> defaultFontCache = new ConcurrentDictionary<int, Font>();
126 references to ConcurrentDictionary
mscorlib (69)
system\Collections\Concurrent\ConcurrentDictionary.cs (56)
50/// All public and protected members of <see cref="ConcurrentDictionary{TKey,TValue}"/> are thread-safe and may be used 173/// cref="ConcurrentDictionary{TKey,TValue}"/> 181/// cref="ConcurrentDictionary{TKey,TValue}"/> 186/// <see cref="ConcurrentDictionary{TKey,TValue}"/> concurrently.</param> 188/// cref="ConcurrentDictionary{TKey,TValue}"/> 197/// Initializes a new instance of the <see cref="ConcurrentDictionary{TKey,TValue}"/> 205/// <see cref="ConcurrentDictionary{TKey,TValue}"/>.</param> 213/// Initializes a new instance of the <see cref="ConcurrentDictionary{TKey,TValue}"/> 224/// Initializes a new instance of the <see cref="ConcurrentDictionary{TKey,TValue}"/> 233/// <see cref="ConcurrentDictionary{TKey,TValue}"/>.</param> 249/// Initializes a new instance of the <see cref="ConcurrentDictionary{TKey,TValue}"/> 255/// <see cref="ConcurrentDictionary{TKey,TValue}"/> concurrently.</param> 257/// <see cref="ConcurrentDictionary{TKey,TValue}"/>.</param> 300/// Initializes a new instance of the <see cref="ConcurrentDictionary{TKey,TValue}"/> 305/// <see cref="ConcurrentDictionary{TKey,TValue}"/> concurrently.</param> 307/// cref="ConcurrentDictionary{TKey,TValue}"/> 357/// Attempts to add the specified key and value to the <see cref="ConcurrentDictionary{TKey, 363/// <returns>true if the key/value pair was added to the <see cref="ConcurrentDictionary{TKey, 368/// <exception cref="T:System.OverflowException">The <see cref="ConcurrentDictionary{TKey, TValue}"/> 378/// Determines whether the <see cref="ConcurrentDictionary{TKey, TValue}"/> contains the specified 381/// <param name="key">The key to locate in the <see cref="ConcurrentDictionary{TKey, 383/// <returns>true if the <see cref="ConcurrentDictionary{TKey, TValue}"/> contains an element with 397/// <see cref="ConcurrentDictionary{TKey, TValue}"/>. 401/// <see cref="ConcurrentDictionary{TKey,TValue}"/> or the default value of <typeparamref 486/// cref="ConcurrentDictionary{TKey,TValue}"/>. 491/// <see cref="ConcurrentDictionary{TKey,TValue}"/> with the specified key or the default value of 493/// <returns>true if the key was found in the <see cref="ConcurrentDictionary{TKey,TValue}"/>; 613/// Removes all keys and values from the <see cref="ConcurrentDictionary{TKey,TValue}"/>. 685/// Copies the key and value pairs stored in the <see cref="ConcurrentDictionary{TKey,TValue}"/> to a 689/// cref="ConcurrentDictionary{TKey,TValue}"/>.</returns> 777/// cref="ConcurrentDictionary{TKey,TValue}"/>.</summary> 778/// <returns>An enumerator for the <see cref="ConcurrentDictionary{TKey,TValue}"/>.</returns> 989/// cref="ConcurrentDictionary{TKey,TValue}"/>. 994/// cref="ConcurrentDictionary{TKey,TValue}"/>.</value> 996/// cref="ConcurrentDictionary{TKey,TValue}"/> 1021/// cref="ConcurrentDictionary{TKey,TValue}"/>. Should only be used after all locks 1027/// cref="ConcurrentDictionary{TKey,TValue}"/>.</value> 1029/// cref="ConcurrentDictionary{TKey,TValue}"/> 1045/// Adds a key/value pair to the <see cref="ConcurrentDictionary{TKey,TValue}"/> 1074/// Adds a key/value pair to the <see cref="ConcurrentDictionary{TKey,TValue}"/> 1095/// Adds a key/value pair to the <see cref="ConcurrentDictionary{TKey,TValue}"/> 1124/// Adds a key/value pair to the <see cref="ConcurrentDictionary{TKey,TValue}"/> if the key does not already 1125/// exist, or updates a key/value pair in the <see cref="ConcurrentDictionary{TKey,TValue}"/> if the key 1175/// Adds a key/value pair to the <see cref="ConcurrentDictionary{TKey,TValue}"/> if the key does not already 1176/// exist, or updates a key/value pair in the <see cref="ConcurrentDictionary{TKey,TValue}"/> if the key 1224/// Adds a key/value pair to the <see cref="ConcurrentDictionary{TKey,TValue}"/> if the key does not already 1225/// exist, or updates a key/value pair in the <see cref="ConcurrentDictionary{TKey,TValue}"/> if the key 1270/// Gets a value that indicates whether the <see cref="ConcurrentDictionary{TKey,TValue}"/> is empty. 1272/// <value>true if the <see cref="ConcurrentDictionary{TKey,TValue}"/> is empty; otherwise, 1317/// cref="ConcurrentDictionary{TKey,TValue}"/>.</exception> 1466/// cref="ConcurrentDictionary{TKey,TValue}"/>.</summary> 1467/// <returns>An enumerator for the <see cref="ConcurrentDictionary{TKey,TValue}"/>.</returns> 1476return ((ConcurrentDictionary<TKey, TValue>)this).GetEnumerator(); 1532return (key is TKey) && ((ConcurrentDictionary<TKey, TValue>)this).ContainsKey((TKey)key); 1649((ConcurrentDictionary<TKey, TValue>)this)[(TKey)key] = (TValue)value; 2153internal DictionaryEnumerator(ConcurrentDictionary<TKey, TValue> dictionary)
system\diagnostics\eventing\eventsource.cs (8)
5477var activeActivities = GetActiveActivities(filterList); 5500var activeActivities = GetActiveActivities(filterList); 5519var activeActivities = GetActiveActivities(filterList); 5610ConcurrentDictionary<Guid, int> activeActivities = null; 5697private static void TrimActiveActivityStore(ConcurrentDictionary<Guid, int> activities) 5717private static ConcurrentDictionary<Guid, int> GetActiveActivities( 5732ConcurrentDictionary<Guid, int> m_activeActivities; 5747ConcurrentDictionary<Guid, Tuple<Guid, int>> m_rootActiveActivities;
system\runtime\serialization\formatters\binary\binaryformatter.cs (2)
54private static Lazy<ConcurrentDictionary<Type, TypeInformation>> concurrentTypeNameCache = new Lazy<ConcurrentDictionary<Type, TypeInformation>>(() => new ConcurrentDictionary<Type, TypeInformation>());
system\runtime\serialization\formatters\binary\binaryutilclasses.cs (1)
560static System.Collections.Concurrent.ConcurrentDictionary<string, object> ht = new System.Collections.Concurrent.ConcurrentDictionary<string, object>();
system\runtime\serialization\formatterservices.cs (1)
38internal static ConcurrentDictionary<MemberHolder, MemberInfo[]> m_MemberInfoTable = new ConcurrentDictionary<MemberHolder, MemberInfo[]>();
system\threading\Tasks\ConcurrentExclusiveSchedulerPair.cs (1)
40private readonly ConcurrentDictionary<int, ProcessingMode> m_threadProcessingMapping = new ConcurrentDictionary<int, ProcessingMode>();
PresentationFramework (4)
src\Framework\System\Windows\Markup\Baml2006\WpfXamlType.cs (4)
34private ConcurrentDictionary<string, XamlMember> _attachableMembers; 35private ConcurrentDictionary<string, XamlMember> _members; 50protected ConcurrentDictionary<string, XamlMember> Members 62protected ConcurrentDictionary<string, XamlMember> AttachableMembers
System (4)
net\System\Net\_AuthenticationManager2.cs (1)
22private ConcurrentDictionary<string, IAuthenticationModule> moduleList = null;
net\System\Net\_SSPIWrapper.cs (3)
82private static readonly Lazy<ConcurrentDictionary<string, SafeFreeCredentials>> s_DefaultCredentialsHandleCache = 83new Lazy<ConcurrentDictionary<string, SafeFreeCredentials>>(InitDefaultCredentialsHandleCache); 84private static ConcurrentDictionary<string, SafeFreeCredentials> InitDefaultCredentialsHandleCache() {
System.Activities (2)
System\Activities\XamlIntegration\TypeConverterBase.cs (2)
19Lazy<ConcurrentDictionary<Type, TypeConverterHelper>> helpers = new Lazy<ConcurrentDictionary<Type, TypeConverterHelper>>( delegate()
System.ComponentModel.DataAnnotations (3)
DataAnnotations\AssociatedMetadataTypeTypeDescriptor.cs (3)
83private static readonly ConcurrentDictionary<Type, Type> _metadataTypeCache = new ConcurrentDictionary<Type, Type>(); 86private static readonly ConcurrentDictionary<Tuple<Type, string>, Attribute[]> _typeMemberCache = new ConcurrentDictionary<Tuple<Type, string>, Attribute[]>(); 89private static readonly ConcurrentDictionary<Tuple<Type, Type>, bool> _validatedMetadataTypeCache = new ConcurrentDictionary<Tuple<Type, Type>, bool>();
System.Data (10)
fx\src\data\System\Data\Common\DataStorage.cs (1)
132private readonly static ConcurrentDictionary<Type, Tuple<bool, bool, bool, bool>> _typeImplementsInterface = new ConcurrentDictionary<Type, Tuple<bool, bool, bool, bool>>();
fx\src\data\System\Data\ProviderBase\DbConnectionPool.cs (2)
432private readonly ConcurrentDictionary<DbConnectionPoolAuthenticationContextKey, DbConnectionPoolAuthenticationContext> _pooledDbAuthenticationContexts; 597internal ConcurrentDictionary<DbConnectionPoolAuthenticationContextKey, DbConnectionPoolAuthenticationContext> AuthenticationContexts
fx\src\data\System\Data\ProviderBase\DbConnectionPoolGroup.cs (3)
37private ConcurrentDictionary<DbConnectionPoolIdentity, DbConnectionPool> _poolCollection; 126ConcurrentDictionary<DbConnectionPoolIdentity, DbConnectionPool> oldPoolCollection = null; 250var newPoolCollection = new ConcurrentDictionary<DbConnectionPoolIdentity, DbConnectionPool>();
fx\src\data\System\Data\SqlClient\SqlAeadAes256CbcHmac256Factory.cs (1)
22private readonly ConcurrentDictionary<string, SqlAeadAes256CbcHmac256Algorithm> _encryptionAlgorithms =
fx\src\data\System\Data\SqlClient\SqlAes256CbcFactory.cs (1)
24private readonly ConcurrentDictionary<string, SqlAes256CbcAlgorithm> _encryptionAlgorithms =
fx\src\data\System\Data\SqlClient\SqlClientEncryptionAlgorithmFactoryList.cs (1)
19private readonly ConcurrentDictionary<string, SqlClientEncryptionAlgorithmFactory> _encryptionAlgoFactoryList;
fx\src\data\System\Data\SqlClient\SqlConnection.cs (1)
87static private readonly ConcurrentDictionary<string, IList<string>> _ColumnEncryptionTrustedMasterKeyPaths
System.Data.Entity (2)
System\Data\Common\QueryCache\CompiledQueryCacheEntry.cs (1)
34private ConcurrentDictionary<String, ObjectQueryExecutionPlan> _plans;
System\Data\Mapping\StorageMappingItemCollection.cs (1)
63private ConcurrentDictionary<Tuple<EntitySetBase, EntityTypeBase, InterestingMembersKind>, ReadOnlyCollection<EdmMember>> _cachedInterestingMembers =
System.ServiceModel (2)
System\ServiceModel\Channels\HttpHeaderInfo.cs (1)
37private static ConcurrentDictionary<string, HttpHeaderInfo> knownHeadersInfos;
System\UriTemplate.cs (1)
36ConcurrentDictionary<string, string> unescapedDefaults;
System.Web (25)
Compilation\AssemblyResolver.cs (4)
70private static readonly Lazy<ConcurrentDictionary<string, Version>> s_assemblyVersions = 71new Lazy<ConcurrentDictionary<string, Version>>( 207private static ConcurrentDictionary<string, Version> AssemblyVersions { 219var assemblyVersions = AssemblyVersions;
Compilation\BuildProvidersCompiler.cs (2)
772ConcurrentDictionary<AssemblyBuilder, CompilerResults> buildResults = new ConcurrentDictionary<AssemblyBuilder, CompilerResults>(); 773ConcurrentDictionary<AssemblyBuilder, CompilerResults> buildErrors = new ConcurrentDictionary<AssemblyBuilder, CompilerResults>();
Configuration\CompilationSection.cs (2)
198private static readonly Lazy<ConcurrentDictionary<Assembly, string>> _assemblyNames = 199new Lazy<ConcurrentDictionary<Assembly, string>>();
Configuration\MTConfigUtil.cs (2)
15private static readonly ConcurrentDictionary<Tuple<Type, VirtualPath>, ConfigurationSection> s_sections = 18private static readonly ConcurrentDictionary<VirtualPath, Configuration> s_configurations =
Hosting\CustomRuntimeManager.cs (1)
17private readonly ConcurrentDictionary<CustomRuntimeRegistration, object> _activeRegistrations = new ConcurrentDictionary<CustomRuntimeRegistration, object>();
Hosting\SuspendManager.cs (1)
21private readonly ConcurrentDictionary<ISuspendibleRegisteredObject, object> _registeredObjects = new ConcurrentDictionary<ISuspendibleRegisteredObject, object>();
State\SessionStateModule.cs (1)
159private static ConcurrentDictionary<string, int> s_queuedRequestsNumPerSession = new ConcurrentDictionary<string, int>();
UI\DataBinder.cs (1)
27private static readonly ConcurrentDictionary<Type, PropertyDescriptorCollection> propertyCache = new ConcurrentDictionary<Type, PropertyDescriptorCollection>();
UI\TargetFrameworkUtil.cs (11)
20private ConcurrentDictionary<string, EventInfo> _events; 21private ConcurrentDictionary<Tuple<string, int>, FieldInfo> _fields; 22private ConcurrentDictionary<Tuple<string, int>, PropertyInfo> _properties; 27internal ConcurrentDictionary<string, EventInfo> Events { 35internal ConcurrentDictionary<Tuple<string, int>, FieldInfo> Fields { 43internal ConcurrentDictionary<Tuple<string, int>, PropertyInfo> Properties { 53private static ConcurrentDictionary<Type, MemberCache> s_memberCache = new ConcurrentDictionary<Type, MemberCache>(); 57private static ConcurrentDictionary<Type, PropertyDescriptorCollection> s_typePropertyDescriptorCollectionDict = 59private static ConcurrentDictionary<object, PropertyDescriptorCollection> s_objectPropertyDescriptorCollectionDict = 61private static ConcurrentDictionary<Type, EventDescriptorCollection> s_eventDescriptorCollectionDict = 64private static ConcurrentDictionary<Type, bool> s_isFrameworkType = new ConcurrentDictionary<Type, bool>();
System.Web.DynamicData (2)
DynamicData\MetaModel.cs (1)
34private readonly static ConcurrentDictionary<Type, bool> s_registeredMetadataTypes = new ConcurrentDictionary<Type, bool>();
UI\DataControlExtensions.cs (1)
8private readonly static ConcurrentDictionary<Type, MetaTable> s_MetaTableCache = new ConcurrentDictionary<Type, MetaTable>();
System.Web.Extensions (2)
UI\AssemblyCache.cs (1)
33private static readonly ConcurrentDictionary<Assembly, AjaxFrameworkAssemblyAttribute> _ajaxAssemblyAttributeCache =
UI\ScriptResourceMapping.cs (1)
10private readonly ConcurrentDictionary<Tuple<String, Assembly>, ScriptResourceDefinition> _definitions =
System.Windows.Forms (1)
winforms\Managed\System\WinForms\ToolStripManager.cs (1)
36private static ConcurrentDictionary<int, Font> defaultFontCache = new ConcurrentDictionary<int, Font>();