【发布时间】:2017-08-21 13:30:48
【问题描述】:
我有一些代码应该从事件查看器的所有路径中读取错误。使用下面的代码一切正常。
foreach (var log in EventLog.GetEventLogs(Environment.MachineName))
{
log.Entries
.Cast<EventLogEntry>()
.Where(x => x.EntryType == EventLogEntryType.Error && x.TimeWritten > DateTime.Now.AddHours(-1))
.ToList()
.ForEach(x =>
{
list.Add(new LogEntry(x, log.LogDisplayName, ItemStatus.Error));
});
}
这通常需要不到两秒钟的时间。
现在我的问题是,当我使用另一台机器而不是 Environment.MachineName 时,这个过程需要 5-20 分钟。
有没有办法加快速度?
谢谢
避免使用 LINQ 对我的结果影响不大。
【问题讨论】:
-
好吧,如果它工作得很好,你需要什么帮助?
-
@non破坏性,我猜 - 它很慢,标题说“性能”,谁需要问号?
-
对不起!发布到早:)
-
@Sinatr 我刚刚看了一下这个问题,并尝试避免使用 LINQ,但它并没有对我的结果产生太大影响。它仍然需要分钟。 3分钟。那么你们认为甚至可以放慢速度(比如 30 秒)还是我必须接受 3-5 分钟?
-
@j.zeddi,我不是专家,接受的答案提到了 WMI,也许值得一试?
标签: c#