void TraceAndInvoke() { // if (this.flowLegacyActivityId) { Guid currentActivityId = EtwDiagnosticTrace.ActivityId; try { EtwDiagnosticTrace.ActivityId = this.activityId; this.callback(this.state); } finally { EtwDiagnosticTrace.ActivityId = currentActivityId; } } else { Guid previous = Guid.Empty; bool restoreActivityId = false; try { if (this.eventTraceActivity != null) { previous = Trace.CorrelationManager.ActivityId; restoreActivityId = true; Trace.CorrelationManager.ActivityId = this.eventTraceActivity.ActivityId; if (TraceCore.ActionItemCallbackInvokedIsEnabled(Fx.Trace)) { TraceCore.ActionItemCallbackInvoked(Fx.Trace, this.eventTraceActivity); } } this.callback(this.state); } finally { if (restoreActivityId) { Trace.CorrelationManager.ActivityId = previous; } } } }
private async Task TraceAndInvokeAsync() { if (_flowLegacyActivityId) { Guid currentActivityId = EtwDiagnosticTrace.ActivityId; try { EtwDiagnosticTrace.ActivityId = _activityId; await _asyncCallback(_state); } finally { EtwDiagnosticTrace.ActivityId = currentActivityId; } } else { Guid previous = Guid.Empty; bool restoreActivityId = false; try { if (_eventTraceActivity != null) { previous = Trace.CorrelationManager.ActivityId; restoreActivityId = true; Trace.CorrelationManager.ActivityId = _eventTraceActivity.ActivityId; if (TraceCore.ActionItemCallbackInvokedIsEnabled(Fx.Trace)) { TraceCore.ActionItemCallbackInvoked(Fx.Trace, _eventTraceActivity); } } await _asyncCallback(_state); } finally { if (restoreActivityId) { Trace.CorrelationManager.ActivityId = previous; } } } }
private void TraceAndInvoke() { if (!this.flowLegacyActivityId) { Guid empty = Guid.Empty; bool flag = false; try { if (this.eventTraceActivity != null) { empty = Trace.CorrelationManager.ActivityId; flag = true; Trace.CorrelationManager.ActivityId = this.eventTraceActivity.ActivityId; if (TraceCore.ActionItemCallbackInvokedIsEnabled(Fx.Trace)) { TraceCore.ActionItemCallbackInvoked(Fx.Trace, this.eventTraceActivity); } } this.callback(this.state); } finally { if (flag) { Trace.CorrelationManager.ActivityId = empty; } } } else { Guid activityId = DiagnosticTraceBase.ActivityId; try { DiagnosticTraceBase.ActivityId = this.activityId; this.callback(this.state); } finally { DiagnosticTraceBase.ActivityId = activityId; } } }