Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF TextBlock内存泄漏问题_C#_Wpf_Memory Leaks - Fatal编程技术网

C# WPF TextBlock内存泄漏问题

C# WPF TextBlock内存泄漏问题,c#,wpf,memory-leaks,C#,Wpf,Memory Leaks,我在WPF的默认文本框中遇到了内存泄漏。 我不是在谈论UndoRedo堆栈问题,因为还有其他帖子 这个问题可以通过窗口中的简单文本框重现。只需创建窗口,关闭它并调用GC,如下面的代码所示 <Window x:Class="TestWPFMemoryLeak.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="h

我在WPF的默认文本框中遇到了内存泄漏。 我不是在谈论UndoRedo堆栈问题,因为还有其他帖子

这个问题可以通过窗口中的简单文本框重现。只需创建窗口,关闭它并调用GC,如下面的代码所示

<Window x:Class="TestWPFMemoryLeak.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:TestWPFMemoryLeak"
    mc:Ignorable="d"
    Title="Window1" Height="450" Width="800">
<Grid>
    <TextBox UndoLimit="0"/>
</Grid>

公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();

对于(int i=0;我认为只要不成问题,你就应该忽略它。在C#中,垃圾清理器通常最好是单独使用。这没有足够的内存可担心。当你达到2 gig时,你需要开始考虑你的所有用户是64位还是需要优化某些东西。你设想一个用户打开多少次在一个工作日内关闭一个窗口?如果太多,那么也许你应该把它做成一个单一窗口的应用程序。你有哪些薄弱的参考资料?
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        for(int i=0;i<100;++i)
        {
            Window1 w = new Window1();
            w.Close();
            w = null;

            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
        }
    }
}