我发现使用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响应的对话框。