EventLog.EntryWritten Zdarzenie

Definicja

Występuje, gdy wpis jest zapisywany w dzienniku zdarzeń na komputerze lokalnym.

C#
public event System.Diagnostics.EntryWrittenEventHandler EntryWritten;

Typ zdarzenia

Przykłady

W poniższym przykładzie jest obsługiwane zdarzenie napisane przez wpis.

C#
using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    // This member is used to wait for events.
    static AutoResetEvent signal;

    public static void Main(){

        signal = new AutoResetEvent(false);
        EventLog myNewLog = new EventLog("Application", ".", "testEventLogEvent");

        myNewLog.EntryWritten += new EntryWrittenEventHandler(MyOnEntryWritten);
        myNewLog.EnableRaisingEvents = true;
        myNewLog.WriteEntry("Test message", EventLogEntryType.Information);
        signal.WaitOne();
    }

    public static void MyOnEntryWritten(object source, EntryWrittenEventArgs e){
        Console.WriteLine("In event handler");
        signal.Set();
    }
}

Uwagi

Aby otrzymywać powiadomienia o zdarzeniach, należy ustawić truewartość EnableRaisingEvents . Powiadomienia o zdarzeniach można otrzymywać tylko wtedy, gdy wpisy są zapisywane na komputerze lokalnym. Nie można odbierać powiadomień o wpisach zapisanych na komputerach zdalnych.

Podczas tworzenia delegata EntryWritten należy zidentyfikować metodę, która będzie obsługiwać zdarzenie. Aby skojarzyć zdarzenie z programem obsługi zdarzeń, dodaj wystąpienie delegata do zdarzenia. Procedura obsługi zdarzeń jest wywoływana za każdym razem, gdy wystąpi zdarzenie, dopóki nie usuniesz delegata. Aby uzyskać więcej informacji na temat obsługi zdarzeń za pomocą delegatów, zobacz Obsługa i podnoszenie zdarzeń.

System reaguje WriteEntry tylko wtedy, gdy ostatnie zdarzenie zapisu miało miejsce co najmniej sześć sekund wcześniej. Oznacza to, że w ciągu sześciu sekund otrzymasz tylko jedno EntryWritten powiadomienie o zdarzeniu, nawet jeśli wystąpi więcej niż jedna zmiana dziennika zdarzeń. W przypadku wstawienia wystarczająco długiego interwału uśpienia (około 10 sekund) między wywołaniami metody WriteEntryjest mniej prawdopodobne, aby przegapić zdarzenie. Jeśli jednak zdarzenia zapisu występują częściej, powiadomienie o zdarzeniu może nie zostać odebrane do następnego interwału. Zazwyczaj nieodebrane powiadomienia o zdarzeniach nie są tracone, ale opóźnione.

Dotyczy

Produkt Wersje
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Zobacz też