public Random GetNamedRandom(string name, long seed)
 {
     try {
         ThreadMonitor.Enter(LockNamedDict);
         if (!NamedPRNGs.ContainsKey(name))
         {
             NamedPRNGs.Add(name, GetNewRandom(seed));
         }
     }
     finally {
         ThreadMonitor.Exit(LockNamedDict);
     }
     return(NamedPRNGs[name]);
 }
 public static void Enter(object obj)
 {
     SMonitor.Enter(obj);
 }