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 、転送イベントをログに記録します。 現在のスレッドのアクティビティは イベントと共にログに記録され、これにより、イベントのコンシューマーによって 2 つのアクティビティが関連付けられます。
この関数を呼び出す ETW イベント メソッドは、次のガイドラインに従う必要があります。
最初のパラメーターを 名前付き
relatedActivityId
としてGuid指定します。プロパティとして または Receive をSendEventAttribute.Opcode指定します。
イベント ID を渡し、その後に関連する ID GUID を渡し、その後にイベント メソッドが渡されるすべてのパラメーターを同じ順序で呼び出 WriteEventWithRelatedActivityId します。
が使用されていない場合 args
は、結果として ETW を呼び出すために空の配列に変換されます。
適用対象
.NET