internal static FauxProcess GetProcess(int pid, DateTime msgTime) { lock (ProcessCache) { FauxProcess result; if (ProcessCache.ContainsKey(pid)) { result = ProcessCache[pid]; if (result.FirstMessageTime == DateTime.MinValue) { result.FirstMessageTime = msgTime; } try { var checkProc = Process.GetProcessById(pid); if (checkProc.StartTime != result.StartTime) { // new proc with same id. result = new FauxProcess { ProcessName = checkProc.ProcessName, StartTime = checkProc.StartTime, FirstMessageTime = msgTime, Id = pid }; ProcessCache[pid] = result; } } catch { } return(result); } try { var proc = Process.GetProcessById(pid); result = new FauxProcess { ProcessName = proc.ProcessName, StartTime = proc.StartTime, FirstMessageTime = msgTime, Id = pid }; } catch { result = new FauxProcess { ProcessName = "<exited>", StartTime = msgTime, FirstMessageTime = msgTime, Id = pid }; } ProcessCache.Add(pid, result); return(result); } }
internal static FauxProcess GetProcess(int pid, DateTime msgTime) { lock (ProcessCache) { FauxProcess result; if (ProcessCache.ContainsKey(pid)) { result = ProcessCache[pid]; if (result.FirstMessageTime == DateTime.MinValue) { result.FirstMessageTime = msgTime; } try { var checkProc = Process.GetProcessById(pid); if (checkProc.StartTime != result.StartTime) { // new proc with same id. result = new FauxProcess { ProcessName = checkProc.ProcessName, StartTime = checkProc.StartTime, FirstMessageTime = msgTime, Id = pid }; ProcessCache[pid] = result; } } catch { } return result; } try { var proc = Process.GetProcessById(pid); result = new FauxProcess { ProcessName = proc.ProcessName, StartTime = proc.StartTime, FirstMessageTime = msgTime, Id = pid }; } catch { result = new FauxProcess { ProcessName = "<exited>", StartTime = msgTime, FirstMessageTime = msgTime, Id = pid }; } ProcessCache.Add(pid, result); return result; } }