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

Definice

Zapíše událost, která označuje, že aktuální aktivita souvisí s jinou aktivitou.

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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type")]
protected void WriteEventWithRelatedActivityId(int eventId, Guid relatedActivityId, params 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
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("EventSource will serialize the whole object graph. Trimmer will not safely handle this case because properties may be trimmed. This can be suppressed if the object is a primitive type")>]
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())

Parametry

eventId
Int32

Identifikátor, který jednoznačně identifikuje tuto událost v rámci EventSource.

relatedActivityIdchildActivityID
Guid

Identifikátor související aktivity.

args
Object[]

Pole objektů, které obsahují data o události.

Atributy

Příklady

Následující příklad kódu ukazuje, jak můžete určit zdroj událostí, který volá 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);
            }
        }
    }

Poznámky

Metoda WriteEventWithRelatedActivityId zaznamená událost přenosu. Aktivita aktuálního vlákna se protokoluje s událostí a to umožňuje, aby dvě aktivity souvisely se příjemcem událostí.

Vaše metoda událostí pro Windows, která volá tuto funkci, musí postupovat podle těchto pokynů:

  • Zadejte první parametr jako pojmenovaný GuidrelatedActivityId.
  • Zadejte buď Send vlastnost, nebo Receive jako EventAttribute.Opcode vlastnost.
  • Volání WriteEventWithRelatedActivityId předávající ID události následované identifikátorem GUID souvisejícího ID následované všemi parametry, které metoda události předává, ve stejném pořadí.

Pokud args se nepoužívá, převede se na prázdné pole pro výsledné volání etW.

Platí pro