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);
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())

Parametry

eventId
Int32

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

relatedActivityIdchildActivityID
Guid

Identifikátor související aktivity.

args
Object[]

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

Příklady

Následující příklad kódu ukazuje, jak můžete zadat 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 protokoluje událost přenosu. Aktivita aktuálního vlákna se protokoluje s událostí, což umožňuje, aby příjemce událostí provedl dvě aktivity.

Metoda události Trasování událostí pro Windows volající tuto funkci musí dodržovat tyto pokyny:

  1. První parametr zadejte jako pojmenovaný GuidrelatedActivityId.

  2. Jako vlastnost zadejte nebo SendReceiveEventAttribute.Opcode .

  3. Volání WriteEventWithRelatedActivityId předání ID události následované identifikátorem GUID souvisejícího ID následovaného všemi parametry, které se předá metoda události, ve stejném pořadí.

Pokud args se nepoužije, převede se na prázdné pole pro výsledné volání Trasování událostí pro Windows.

Platí pro