static void SetStatusText([NotNull] IMainWindowViewModel mainWindowViewModel, [NotNull] string statusText) { if (mainWindowViewModel == null) { throw new ArgumentNullException(nameof(mainWindowViewModel)); } if (statusText == null) { throw new ArgumentNullException(nameof(statusText)); } // Do not invoke logging inside this method because the logger is forwarded. // Circular invocation -> Stack overflow! mainWindowViewModel.SetStatusTextAsync(statusText).GetAwaiter().GetResult(); }