我试图决定在WPF或WinForms中编写我的新应用程序,但我无法弄清楚WPF不稳定的内存消耗模式。
就像一个例子,我在Visual Studio 2013中创建了一个基本的WPF应用程序,带有StackPanel和TextBox。就像这样:
<Window x:Class="SingleTextBoxWpfTestApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel Margin="20">
<TextBox></TextBox>
</StackPanel>
没有代码,没有ViewModel - 只是这个。
我启动程序,它已经是6.5 MB。然后出现以下奇怪之处:我左键单击文本框一次将光标放在那里,坐下来用爆米花,看着任务管理器发疯。在大约一分钟的持续时间内,进程的内存不断上升和上升,直到它停止在大约11 MB。仅仅因为文本框得到了关注。
如果我将焦点移动到另一个进程(即使WPF进程仍然可见),则joyride会停止。
有谁知道为什么会发生这种情况以及如何阻止它?