private void InitKnownNames() { if (s_knownNames == null) { NameTable tmp = new NameTable(); // add all predefined names Debug.Assert(s_predefinedNames.Length == (int)PredefinedName.PN_COUNT); for (int i = 0, n = s_predefinedNames.Length; i < n; i++) { Debug.Assert((int)s_predefinedNames[i].PredefinedName == i); Name name = s_predefinedNames[i]; tmp.Add(name); } // add all other names foreach (KnownName name in s_otherNames) { tmp.Add(name); } Interlocked.CompareExchange<NameTable>(ref s_knownNames, tmp, null); } }