public static TrivialLog getInstance(string keyFile) { TrivialLog tlog = null; bool res = false; if (keyFile == null || keyFile.Trim().Equals("")) { keyFile = DEFLOGFILE; } // critical region Dic TrivialLog.mutDic.WaitOne(); res = TrivialLog.instancesDic.TryGetValue(keyFile, out tlog); TrivialLog.mutDic.ReleaseMutex(); // end critical region Dic if (res) { return(tlog); } else { tlog = new TrivialLog(keyFile); TrivialLog.addNew(keyFile, tlog); } return(tlog); }
/// <summary> /// Add a instance of TivialLog to the dictionary if it does not exists. Thread safe method. /// </summary> /// <param name="key"></param> /// <param name="val"></param> private static void addNew(string key, TrivialLog val) { if (key == null || key.Trim().Equals("")) { return; } // critical region Dic TrivialLog.mutDic.WaitOne(); if (!TrivialLog.instancesDic.ContainsKey(key)) { TrivialLog.instancesDic.Add(key, val); } TrivialLog.mutDic.ReleaseMutex(); // end critical region Dic }