EventSource.WriteEventWithRelatedActivityId(Int32, Guid, Object[]) Methode

Definitie

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.

Van toepassing op