我应该处理我的页面而不是等待GC Windows 10 UWP

时间:2017-02-02 02:53:31

标签: c# .net garbage-collection uwp windows-10-universal

我有一个Windows 10 UWP应用程序,我使用

进行了很多导航
Frame.Navigate(typeof(myClass));

我知道当我导航时,这会创建一个类的新实例,在这种情况下是myClass。这一切都很好,我很好。

我也知道我可以设置导航缓存,特别是当您要使用后台堆栈进行导航时。但是,我没有这样做。我基本上有一个按钮可以前进,还有一个按钮可以返回。单击该按钮时,我就像上面显示的那样调用Frame.Navigate。

我这样做的原因是,当我想通过这个简单的导航前进和后退时,我不想担心导航堆栈。

那就是说,问题就在这里。我知道GC可能需要时间来处理类的实例。如果我快速从一个类导航到另一个类,那么GC是否可能尚未处置并且我正在实例化该类的多个实例?如果是这样,我应该以某种方式明确处理该类吗?我在想是否覆盖OnNavigatedFrom并在那里处置?

因此,例如,让我们说快速调用以下内容(大约一秒左右),因为用户正在按下按钮来回来回。

 Frame.Navigate(typeof(myClass));
 Frame.Navigate(typeof(myClass2));
 Frame.Navigate(typeof(myClass));
 Frame.Navigate(typeof(myClass2));

是否有可能暂时结束每个类的两个实例,直到GC开始清理?我应该如何保持这一切干净?

谢谢!

0 个答案:

没有答案