diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.Current.net46.cs b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.Current.net46.cs index 48e0617cf6f21f..9070bd44a16ca2 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.Current.net46.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.Current.net46.cs @@ -27,9 +27,17 @@ public static Activity? Current private static void SetCurrent(Activity? activity) { - Activity? previous = s_current.Value; - s_current.Value = activity; - CurrentChanged?.Invoke(null, new ActivityChangedEventArgs(previous, activity)); + EventHandler? handler = CurrentChanged; + if (handler is null) + { + s_current.Value = activity; + } + else + { + Activity? previous = s_current.Value; + s_current.Value = activity; + handler.Invoke(null, new ActivityChangedEventArgs(previous, activity)); + } } } }