def ThreadLoop(self): while self.event.isSet(): pass oldProcesses = GetProcessDict() oldPids = set(oldProcesses.keys()) while not self.event.isSet(): newProcesses = GetProcessDict() newPids = set(newProcesses.keys()) for pid in newPids.difference(oldPids): name = splitext(newProcesses[pid])[0] eg.TriggerEvent("Created." + name, prefix="Process") for pid in oldPids.difference(newPids): name = splitext(oldProcesses[pid])[0] eg.TriggerEvent("Destroyed." + name, prefix="Process") oldProcesses = newProcesses oldPids = newPids self.event.wait(0.1) self.event.clear()