EventSource.WriteEventWithRelatedActivityId(Int32, Guid, Object[]) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 작업이 다른 작업과 연관되어 있음을 나타내는 이벤트를 기록합니다.
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())
매개 변수
- eventId
- Int32
EventSource 내에서 이 이벤트를 고유하게 식별하는 식별자입니다.
- relatedActivityIdchildActivityID
- Guid
관련 작업 식별자입니다.
- args
- Object[]
이벤트에 대한 데이터가 포함된 개체 배열입니다.
예제
다음 코드 예제에서는 를 호출 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);
}
}
}
설명
메서드는 WriteEventWithRelatedActivityId 전송 이벤트를 기록합니다. 현재 스레드의 활동은 이벤트와 함께 기록되며, 이를 통해 이벤트 소비자가 두 활동을 관련할 수 있습니다.
이 함수를 호출하는 ETW 이벤트 메서드는 다음 지침을 따라야 합니다.
첫 번째 매개 변수를 라는
relatedActivityId
으로 Guid 지정합니다.또는 SendReceive 을 속성으로 지정합니다 EventAttribute.Opcode .
이벤트 ID를 전달한 다음 관련 ID GUID를 전달한 다음 이벤트 메서드가 전달되는 모든 매개 변수를 동일한 순서로 호출 WriteEventWithRelatedActivityId 합니다.
가 사용되지 않으면 args
ETW에 대한 결과 호출에 대해 빈 배열로 변환됩니다.
적용 대상
.NET