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

Definisi

Menulis peristiwa yang menunjukkan bahwa aktivitas saat ini terkait dengan aktivitas lain.

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

Parameter

eventId
Int32

Pengidentifikasi yang secara unik mengidentifikasi peristiwa ini dalam EventSource.

relatedActivityIdchildActivityID
Guid

Pengidentifikasi aktivitas terkait.

args
Object[]

Array objek yang berisi data tentang peristiwa tersebut.

Contoh

Contoh kode berikut menunjukkan bagaimana Anda dapat menentukan sumber peristiwa yang memanggil 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);
            }
        }
    }

Keterangan

Metode mencatat WriteEventWithRelatedActivityId peristiwa transfer. Aktivitas utas saat ini dicatat dengan peristiwa, dan ini memungkinkan dua aktivitas untuk dikaitankan oleh konsumen peristiwa.

Metode peristiwa ETW Anda yang memanggil fungsi ini harus mengikuti panduan berikut:

  1. Tentukan parameter pertama sebagai bernama GuidrelatedActivityId.

  2. Tentukan salah satu Send atau Receive sebagai EventAttribute.Opcode properti .

  3. Panggilan WriteEventWithRelatedActivityId yang diteruskan dalam ID peristiwa, diikuti oleh ID GUID terkait, diikuti oleh semua parameter metode peristiwa diteruskan, dalam urutan yang sama.

Jika args tidak digunakan, itu dikonversi ke array kosong untuk panggilan yang dihasilkan ke ETW.

Berlaku untuk