이벤트 로그 클래스의 설명서에서 EventLogEntryCollection은 이벤트 로그 항목의 동적 목록입니다. Count 속성을 값을 변수에 저장하는 대신 직접 사용하는 것이 좋습니다. 이 동작 구현 :정적 목록에 동적 목록
private void ReadEventLog()
{
EventLog eventLog = new EventLog("Application", "TheGreatestMachineInTheWorld");
EventLogEntryCollection eventLogEntries = eventLog.Entries;
for (int i = 0; i < eventLogEntries.Count; i++){
EventLogEntry entry = eventLog.Entries[i];
//Do Some processing on the entry
}
큰 이벤트 로그 (> 20000 항목)는 느립니다. foreach 대신 for 루프를 사용하는 이유는이 객체가 얼마나 가까운지를 나타내는 반복자 위치가 필요하기 때문입니다.
카운트 변수를 저장하고 반복 :
int eventLogEntryCount = eventLogEntries.Count;
for (int i = 0; i < eventLogEntryCount; i++){
EventLogEntry entry = eventLog.Entries[i];
//Do Some processing on the entry
}
는 눈에 띄는 성능 향상을 제공합니다. 그러나 처리가 발생할 때 이벤트 로그에 기록되는 경우 범위를 벗어나는 인덱스 예외 가능성을 엽니 다. 카운트가 변경되지 않도록이 목록을 정적으로 저장하는 방법이 있습니까?
프로그램이 실행되는 동안'eventLog' 객체가 쓰여지거나 컴퓨터 이벤트 로그에 기록됩니까? –
기계 이벤트 로그 – Dudemanword