static IEnumerable <SecurityLog> GetData2() { string[] xPathRef = new string[] { "Event/System/Provider/@Name", "Event/System/TimeCreated/@SystemTime", "Event/System/Execution/@ProcessID", "Event/System/Task", "Event/System/Opcode", "Event/System/Keywords", }; var reader = new EventLogReader(new EventLogQuery("Security", PathType.LogName)); for (var evt = reader.ReadEvent(); evt != null; evt = reader.ReadEvent()) { var rec = evt as EventLogRecord; yield return(new SecurityLog(rec, xPathRef)); } SecurityLog.ClearCache(); }
static void Main1(string[] args) { var logs = new List <SecurityLog>(); var reader = new EventLogReader(new EventLogQuery("Security", PathType.LogName)); Stopwatch sw = Stopwatch.StartNew(); for (var evt = reader.ReadEvent(); evt != null; evt = reader.ReadEvent()) { var rec = evt as EventLogRecord; var log = new SecurityLog(rec); logs.Add(log); } SecurityLog.ClearCache(); sw.Stop(); Console.WriteLine((sw.ElapsedMilliseconds / 1000.0) + "秒"); Console.WriteLine(logs.Count + "件"); }