【发布时间】:2011-10-24 19:21:55
【问题描述】:
我编写了一个简短的程序,使用在启动和关闭时发布的事件日志消息来确定远程 PC 的正常运行时间。目前的逻辑是:
foreach (eventlogentry)
{
if (entryTime > OldestTime)
{
if (entry = Startup)
{
addOnTime(entry.Time);
}
if (entry = Shutdown)
{
addOffTime(entry.Time);
}
}
}
“OldestTime”定义时间向后扫描多远......
我想知道是否有任何方法可以轻松修改我的程序以从最新到最旧读取事件?
它正在读取远程事件日志,并且该函数需要一段时间才能运行,因为它从末尾开始并向前读取。
我知道这一点是因为我在第一个“if”中添加了一个“else”块来突破 foreach 块,如果条目不在我们正在寻找的时间跨度内并且程序在它读取的第一个事件处停止。
【问题讨论】:
-
您如何阅读事件日志?您可能能够更改读取日志的方式,以便它以不同的顺序处理它,但是当您到达代码中的这一点时,读取已经发生,因此您无法更改顺序。跨度>
-
这些日志是文本文件吗?如果是这样,您可以不先将它们加载到列表中,然后从您想要的末尾读取它吗?
-
您使用什么 API 来查询这些远程偶数日志条目?是否有一个 API 可用于仅请求比 OldestTime 更新的条目?这样顺序就不重要了。