EventSource.WriteEventWithRelatedActivityIdCore Yöntem

Tanım

Önemli

Bu API, CLS uyumlu değildir.

Geçerli etkinliğin başka bir etkinlikle ilişkili olduğunu belirten bir olay yazar.

protected:
 void WriteEventWithRelatedActivityIdCore(int eventId, Guid* relatedActivityId, int eventDataCount, System::Diagnostics::Tracing::EventSource::EventData* data);
protected:
 void WriteEventWithRelatedActivityIdCore(int eventId, Guid* childActivityID, int eventDataCount, System::Diagnostics::Tracing::EventSource::EventData* data);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
protected void WriteEventWithRelatedActivityIdCore (int eventId, Guid* relatedActivityId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data);
[System.CLSCompliant(false)]
protected void WriteEventWithRelatedActivityIdCore (int eventId, Guid* relatedActivityId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
protected void WriteEventWithRelatedActivityIdCore (int eventId, Guid* childActivityID, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
member this.WriteEventWithRelatedActivityIdCore : int * nativeptr<Guid> * int * nativeptr<System.Diagnostics.Tracing.EventSource.EventData> -> unit
[<System.CLSCompliant(false)>]
member this.WriteEventWithRelatedActivityIdCore : int * nativeptr<Guid> * int * nativeptr<System.Diagnostics.Tracing.EventSource.EventData> -> unit

Parametreler

eventId
Int32

içinde EventSourcebu olayı benzersiz olarak tanımlayan bir tanımlayıcı.

relatedActivityIdchildActivityID
Guid*

İlgili etkinlik kimliğinin GUID'sine yönelik bir işaretçi.

eventDataCount
Int32

Alandaki öğelerin data sayısı.

data
EventSource.EventData

Olay verileri alanındaki ilk öğenin işaretçisi.

Öznitelikler

Örnekler

Aşağıdaki C# kod örneği, çağıran WriteEventWithRelatedActivityIdCorebir yöntem aşırı yüklemesinin nasıl tanımlandığını 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)
    {
        WriteEventWithRelatedActivityIdCore(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)
        WriteEventWithRelatedActivityIdCore(1, relatedActivityId, reqId, url)
    End Sub

End Class
#region Keywords / Task / Opcodes
public static class Tasks
{
    public const EventTask Request = (EventTask)0x1;
}
#endregion
#Region "Keywords / Task / Opcodes"
    Public NotInheritable Class Tasks
        Private Sub New()
        End Sub
        Public Const Request As EventTask = DirectCast(&H1, EventTask)
    End Class
#End Region

Açıklamalar

WriteEventWithRelatedActivityIdCoreyöntemine WriteEventWithRelatedActivityId benzer ancak ve data bağımsız değişkenlerinin kutusunu childActivityID açması gerekmediğinden daha iyi performans sunar.

Bu işlevi çağıran ETW olay yönteminiz şu yönergeleri izlemelidir:

  1. İlk parametreyi adlandırılmış relatedActivityIdolarak Guid belirtin.

  2. Send Özellik olarak veya Receive belirtinEventAttribute.Opcode.

  3. Olay WriteEventWithRelatedActivityIdCore 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.

Bu yöntem, parametresiyle args aynı kuralları WriteEventCore kullanır. Diğer ayrıntılar için bkz. WriteEventCore belgeleri.

Şunlara uygulanır