EventSource.WriteEventWithRelatedActivityId(Int32, Guid, Object[]) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geçerli etkinliğin başka bir etkinlikle ilişkili olduğunu belirten bir olay yazar.
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())
Parametreler
- eventId
- Int32
içinde EventSourcebu olayı benzersiz olarak tanımlayan bir tanımlayıcı.
- relatedActivityIdchildActivityID
- Guid
İlgili etkinlik tanımlayıcısı.
- args
- Object[]
Olayla ilgili verileri içeren bir nesne dizisi.
- Öznitelikler
Örnekler
Aşağıdaki kod örneği, çağıran WriteEventWithRelatedActivityIdbir olay kaynağını nasıl belirtebileceğinizi gösterir.
[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);
}
}
}
Açıklamalar
yöntemi bir WriteEventWithRelatedActivityId aktarım olayını günlüğe kaydeder. Geçerli iş parçacığının etkinliği olayla günlüğe kaydedilir ve bu, iki etkinliğin olay tüketicisi tarafından ilişkilendirilmesine olanak tanır.
Bu işlevi çağıran ETW olay yönteminiz şu yönergeleri izlemelidir:
- İlk parametreyi adlandırılmış
relatedActivityIdolarak Guid belirtin. - Send Özellik olarak veya Receive belirtinEventAttribute.Opcode.
- Olay WriteEventWithRelatedActivityId kimliğinde çağrı geçirme, ardından ilgili kimlik GUID'si ve ardından olay yönteminin geçirilme sırasına göre tüm parametreler.
Kullanılmazsa args , ETW'ye yapılan sonuç çağrısı için boş bir diziye dönüştürülür.