如果应用程序从VS2013运行或使用双击运行,则ShowDialog()方法的行为不同

时间:2015-08-17 10:41:37

标签: c# .net wpf visual-studio-2013

我发现使用VS调试器运行应用程序时会出现几个与内存相关的差异,并且使用双击exe启动应用程序。

在我的应用程序中,我以编程方式打开一个窗口。启动应用程序5秒后显示窗口。当应用程序处于后台并显示窗口时,会观察到2种不同的行为。他们如下。
1.当在VS调试器中启动应用程序时,新窗口(使用showdialog()打开)出现在前台 2.从exe启动应用程序时,任务栏中的应用程序图标闪烁,但窗口不在前台。

我想知道VS调试器如何影响应用程序执行。还有其他行为,可以通过不同的方式看到,就像上面的情况一样。

以下是我正在做的事情。我已经使用Timer和Dispatcher打开新窗口而没有任何用户交互。

MainWindow.xaml.cs

private Dispatcher dispatcher = null;

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
     System.Timers.Timer timer = new System.Timers.Timer(4000);
     timer.Elapsed += timer_elapsed;
     timer.Start();
}

private void timer_elapsed(X, X)
{
    dispatcher.BeginInvoke(DispatcherPriority.Normal, new NoArgCallback(OpenWindow));
}

private void OpenWindow()
{
    Window2 w2 = new Window2(); // This is another window class
    w2.Owner = this;
    w2.ShowDialog();
}


在VS调试器中运行一次以上代码,并使用.exe运行一次,并在后台观察停留应用程序的行为。实际上我正在显示新窗口作为获取http响应的对话框。

0 个答案:

没有答案