private static void UserChecker() { while (true) { var users = User.AllLoggedIn(); foreach (var user in users) { if (Processes.ContainsKey(user)) { continue; } var proc = ProcessHandler.CreateImpersonatedClientEXE("FOGUserService.exe", "", user); proc.Start(); Processes.Add(user, proc); } var loggedOff = users.Except(Processes.Keys); foreach (var user in loggedOff) { Processes[user].Kill(); Processes[user].Dispose(); Processes.Remove(user); } Thread.Sleep(5 * 1000); } }