public static void SnoopApplication()
{
Dispatcher dispatcher;
if (Application.Current == null)
dispatcher = Dispatcher.CurrentDispatcher;
else
dispatcher = Application.Current.Dispatcher;
if (dispatcher.CheckAccess())
{
SnoopUI snoop = new SnoopUI();
var title = TryGetMainWindowTitle();
if (!string.IsNullOrEmpty(title))
{
snoop.Title = string.Format("{0} - Snoop", title);
}
snoop.Inspect();
CheckForOtherDispatchers(dispatcher);
}
else
{
dispatcher.Invoke((Action)SnoopApplication);
return;
}
}