我創建了一個簡單的WPF C#有一個文本框和DispatcherTimer顯示到GC.GetTotalMemory(真)每秒呼叫的結果。每次調用返回的值穩步增加,任務管理器顯示私人工作記憶集也增加。 這真的是內存泄漏,還是隻是一個外觀?在我的真正的應用程序,每個滴答作出更多的內存泄漏出現顯着更高。 我的代碼如下爲什麼我的簡單的WPF C#與DispatcherTimer應用程序出現內存泄漏?
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();
}
}
}
CLR_Profiler告訴我,我有1.7M分配和任務管理器告訴我,我有127M。你知道CLR_Profiler是否有能力將分配數據轉儲到文件中? –