我正在使用ETW记录某些具有停止和停止操作码的事件,例如:
如果我有两个线程都记录了ActivateTask的开始/停止事件,我如何确保这些事件正确地配对呢?例如:
这是否可能?如果是,怎么做?
更加复杂的是,开始和停止事件可能来自不同的线程(如果需要,我应该能够使线程粘性)。
[Event(1, Task = Tasks.ActivateTask, Opcode = EventOpcode.Start)]
public void ActivateTaskStart(string TaskName)
{
if (IsEnabled())
{
WriteEvent(1, TaskName);
}
}
[Event(2, Task = Tasks.ActivateTask, Opcode = EventOpcode.Stop)]
public void ActivateTaskStop(string TaskName)
{
if (IsEnabled())
{
WriteEvent(2, TaskName);
}
}
如果我有两个线程都记录了ActivateTask的开始/停止事件,我如何确保这些事件正确地配对呢?例如:
- Thead-A: ActivateTaskStart
- Thead-B: ActivateTaskStart
- Thead-A: ActivateTaskStop
- Thead-B: ActivateTaskStop
这是否可能?如果是,怎么做?
更加复杂的是,开始和停止事件可能来自不同的线程(如果需要,我应该能够使线程粘性)。