EventSource.WriteEventWithRelatedActivityId(Int32, Guid, Object[]) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee schrijft u een gebeurtenis die aangeeft dat de huidige activiteit is gerelateerd aan een andere activiteit.
protected:
void WriteEventWithRelatedActivityId(int eventId, Guid relatedActivityId, ... cli::array <System::Object ^> ^ args);
protected:
void WriteEventWithRelatedActivityId(int eventId, Guid childActivityID, ... cli::array <System::Object ^> ^ args);
protected void WriteEventWithRelatedActivityId(int eventId, Guid relatedActivityId, params object[] args);
protected void WriteEventWithRelatedActivityId(int eventId, Guid childActivityID, params object[] args);
member this.WriteEventWithRelatedActivityId : int * Guid * obj[] -> unit
member this.WriteEventWithRelatedActivityId : int * Guid * obj[] -> unit
Protected Sub WriteEventWithRelatedActivityId (eventId As Integer, relatedActivityId As Guid, ParamArray args As Object())
Protected Sub WriteEventWithRelatedActivityId (eventId As Integer, childActivityID As Guid, ParamArray args As Object())
Parameters
- eventId
- Int32
Een id die deze gebeurtenis uniek identificeert binnen de EventSource.
- relatedActivityIdchildActivityID
- Guid
De gerelateerde activiteits-id.
- args
- Object[]
Een matrix met objecten die gegevens over de gebeurtenis bevatten.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een gebeurtenisbron kunt opgeven die aanroept WriteEventWithRelatedActivityId.
[EventSource(Name = "Litware-ProductName-ComponentName")]
public sealed class LitwareComponentNameEventSource : EventSource
{
[Event(1, Task = Tasks.Request, Opcode = EventOpcode.Send)]
public void RequestStart(Guid relatedActivityId, int reqId, string url)
{
WriteEventWithRelatedActivityId(1, relatedActivityId, reqId, url);
}
}
<EventSource(Name:="Litware-ProductName-ComponentName")> _
Public NotInheritable Class LitwareComponentNameEventSource
Inherits EventSource
<[Event](1, Task:=Tasks.Request, Opcode:=EventOpcode.Send)> _
Public Sub RequestStart(relatedActivityId As Guid, reqId As Integer, url As String)
WriteEventWithRelatedActivityId(1, relatedActivityId, reqId, url)
End Sub
End Class
[EventSource(Name = "Contoso-ProductName-ComponentName")]
public sealed class CustomizedForPerfEventSource : EventSource
{
[Event(1, Task = Tasks.Request, Opcode = EventOpcode.Send)]
public void RequestStart(Guid relatedActivityId, int reqId, string url)
{
if (IsEnabled())
WriteEventWithRelatedActivityId(1, relatedActivityId, reqId, url);
}
[NonEvent]
unsafe protected void WriteEventWithRelatedActivityId(int eventId, Guid relatedActivityId,
int arg1, string arg2)
{
if (IsEnabled())
{
if (arg2 == null) arg2 = string.Empty;
fixed (char* stringBytes = arg2)
{
EventData* descrs = stackalloc EventData[2];
descrs[0].DataPointer = (IntPtr)(&arg1);
descrs[0].Size = 4;
descrs[1].DataPointer = (IntPtr)stringBytes;
descrs[1].Size = ((arg2.Length + 1) * 2);
WriteEventWithRelatedActivityIdCore(eventId,
&relatedActivityId, 2, descrs);
}
}
}
Opmerkingen
De WriteEventWithRelatedActivityId methode registreert een overdrachts gebeurtenis. De activiteit van de huidige thread wordt vastgelegd met de gebeurtenis en hierdoor kunnen twee activiteiten worden gerelateerd door een consument van gebeurtenissen.
De ETW-gebeurtenismethode die deze functie aanroept, moet de volgende richtlijnen volgen:
- Geef de eerste parameter op als een Guid benoemde
relatedActivityId. - Geef een van Send de eigenschappen op of Receive als de EventAttribute.Opcode eigenschap.
- Aanroep WriteEventWithRelatedActivityId die de gebeurtenis-id doorgeeft, gevolgd door de gerelateerde ID-GUID, gevolgd door alle parameters die de gebeurtenismethode wordt doorgegeven, wordt in dezelfde volgorde doorgegeven.
Als args dit niet wordt gebruikt, wordt deze geconverteerd naar een lege matrix voor de resulterende aanroep naar ETW.