O código inicia apenas quando Application.Run () é chamado pelo aplicativo WPF

Eu tenho um método que é chamado emclass A e é definido emclass B:

class B{
      [STAThread]
        public static void ScanForAxisCameras() {
                DNSSDService service = new DNSSDService();
                DNSSDEventManager eventManager = new DNSSDEventManager();
                eventManager.ServiceFound += new _IDNSSDEvents_ServiceFoundEventHandler(eventManager_ServiceFound);
                DNSSDService browse = service.Browse(0, 0, "_axis-video._tcp", null, eventManager);
                Application.Run();//if not invoked everything above does not start
            }
}
class A{ ...before invoking..... B.ScanForAxisCameras(); ....after invoking....}

O código emclass B "inicia" / funciona apenas se eu chamarApplication.Run(). Mas faz com que todo o código emclass A ....after invoking.... método não funciona. Como lidar com isso para que não congele o aplicativo?

Editar: aclass A éclass MainWindow.xaml.cs. É uma aplicação WPF.

public partial class MainWindow : Window {

        public MainWindow() {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e) {
            createGUI();
        }

        private void createGUI() {

            LocalNetworkScanner.ScanForAxisCameras();//when there is no Application.Run()  ScanForAxisCameras() does not work.
}
}

questionAnswers(5)

yourAnswerToTheQuestion