Я создал простой wpf C # с одним текстовым полем и DispatcherTimer, который отображает результат вызова GC.GetTotalMemory (true) каждую секунду.Возвращаемое значение неуклонно увеличивается с каждым вызовом, и диспетчер задач показывает, что также увеличивается набор частной рабочей памяти.Это действительно утечка памяти или просто ее появление?В моем реальном приложении, которое делает намного больше в каждом тике, утечки памяти выглядят значительно выше.Мой код выглядит следующим образом:
xaml
<Window x:Class="TestWPFApplication.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<TextBox Name="memoryuseage"></TextBox>
</Grid>
</Window>
xaml.cs
namespace TestWPFApplication
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
System.Windows.Threading.DispatcherTimer tmr;
public Window1()
{
InitializeComponent();
tmr = new System.Windows.Threading.DispatcherTimer();
tmr.Interval = new System.TimeSpan(0, 0, 1);
tmr.Tick += new EventHandler(StaticTick);
tmr.Start();
}
void StaticTick(object o, EventArgs sender)
{
memoryuseage.Text = GC.GetTotalMemory(true).ToString();
}
}
}