EventSource.WriteEventWithRelatedActivityId(Int32, Guid, Object[]) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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:
Tentukan parameter pertama sebagai bernama Guid
relatedActivityId
.Tentukan salah satu Send atau Receive sebagai EventAttribute.Opcode properti .
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.