EventLog.EntryWritten Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyvolá se při zápisu položky do protokolu událostí v místním počítači.
public:
event System::Diagnostics::EntryWrittenEventHandler ^ EntryWritten;
public event System.Diagnostics.EntryWrittenEventHandler EntryWritten;
member this.EntryWritten : System.Diagnostics.EntryWrittenEventHandler
Public Custom Event EntryWritten As EntryWrittenEventHandler
Event Type
Příklady
Následující příklad zpracovává zapsanou událost záznamu.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
ref class MySample
{
private:
// This member is used to wait for events.
static AutoResetEvent^ signal;
public:
static void main()
{
signal = gcnew AutoResetEvent( false );
EventLog^ myNewLog = gcnew EventLog;
myNewLog->Source = "testEventLogEvent";
myNewLog->EntryWritten += gcnew EntryWrittenEventHandler( MyOnEntryWritten );
myNewLog->EnableRaisingEvents = true;
myNewLog->WriteEntry("Test message", EventLogEntryType::Information);
signal->WaitOne();
}
static void MyOnEntryWritten( Object^ /*source*/, EntryWrittenEventArgs^ /*e*/ )
{
Console::WriteLine("In event handler");
signal->Set();
}
};
int main()
{
MySample::main();
}
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();
}
}
Option Explicit On
Option Strict On
Imports System.Diagnostics
Imports System.Threading
Class MySample
' This member is used to wait for events.
Private Shared signal As AutoResetEvent
Public Shared Sub Main()
signal = New AutoResetEvent(False)
Dim myNewLog As New EventLog("Application", ".", "testEventLogEvent")
AddHandler myNewLog.EntryWritten, AddressOf MyOnEntryWritten
myNewLog.EnableRaisingEvents = True
myNewLog.WriteEntry("Test message", EventLogEntryType.Information)
signal.WaitOne()
End Sub
Public Shared Sub MyOnEntryWritten(ByVal [source] As Object, ByVal e As EntryWrittenEventArgs)
Console.WriteLine("In event handler")
signal.Set()
End Sub
End Class
Poznámky
Pokud chcete dostávat oznámení o událostech, musíte nastavit EnableRaisingEvents na true
. Oznámení o událostech můžete přijímat pouze v případě, že jsou položky zapsány v místním počítači. Nelze přijímat oznámení pro položky zapsané ve vzdálených počítačích.
Při vytváření delegáta EntryWritten identifikujete metodu, která bude událost zpracovávat. Pokud chcete událost přidružit k obslužné rutině události, přidejte do události instanci delegáta. Obslužná rutina události je volána vždy, když dojde k události, dokud neodeberete delegáta. Další informace o zpracování událostí pomocí delegátů najdete v tématu Zpracování a vyvolávání událostí.
Systém reaguje pouze v WriteEntry případě, že poslední událost zápisu nastala nejméně šest sekund před. To znamená, že během šestisekundového intervalu obdržíte pouze jedno EntryWritten oznámení o události, a to i v případě, že dojde k více než jedné změně protokolu událostí. Pokud mezi volání WriteEntryvložíte dostatečně dlouhý interval spánku (přibližně 10 sekund) , je méně pravděpodobné, že zmeškáte událost. Pokud se však události zápisu vyskytují častěji, může se stát, že oznámení o události obdržíte až v dalším intervalu. Oznámení o zmeškaných událostech se obvykle neztratí, ale zpozdí.