【发布时间】:2017-03-15 10:02:03
【问题描述】:
使用此代码我正在创建新视图:
CoreApplicationView newView = CoreApplication.CreateNewView();
int newViewId = 0;
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
Frame frame = new Frame();
frame.Navigate(typeof(SecondaryPage), null);
Window.Current.Content = frame;
// You have to activate the window in order to show it later.
Window.Current.Activate();
newViewId = ApplicationView.GetForCurrentView().Id;
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
当我关闭那个新窗口并再次运行代码时,我再次关闭那个新窗口并再次打开另一个窗口,窗口中的内存使用量越来越大......所以,我认为所有窗口都不是关闭了,但实际上只是隐藏了......
所以,我尝试了两种方法:
- 尝试真正“杀死”关闭的窗口
- 尝试重新显示隐藏窗口并使其内容不同...
我只希望只有 2 个窗口,主窗口和这个新创建的窗口... 有关如何执行此操作的任何建议?
编辑:
这就是我使用这个例子时的样子https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/MultipleViews
这是这个应用程序的 3 个屏幕截图。
这是应用启动时的内存消耗:
这是在我添加 4 个视图之后:
这是我打开和关闭它们的时候:
因此,即使在他们的示例中,内存使用量也在上升...
【问题讨论】:
标签: c# memory-leaks uwp forceclose multiple-views