Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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# windows应用商店应用程序中未释放内存_C#_Memory Leaks_Windows Store Apps_Pdf Generation - Fatal编程技术网

C# windows应用商店应用程序中未释放内存

C# windows应用商店应用程序中未释放内存,c#,memory-leaks,windows-store-apps,pdf-generation,C#,Memory Leaks,Windows Store Apps,Pdf Generation,我已经用c创建了windows应用商店应用程序。在其中,我使用pdfdocument类创建图像表单pdf并显示在图像中。 单击按钮,我将删除对象并调用垃圾收集器 处理完所有对象后,为什么不释放内存 doc = await PdfDocument.LoadFromFileAsync(file); if (doc != null) { for (int i = 0; i < doc.PageCount; i++)

我已经用c创建了windows应用商店应用程序。在其中,我使用pdfdocument类创建图像表单pdf并显示在图像中。 单击按钮,我将删除对象并调用垃圾收集器 处理完所有对象后,为什么不释放内存

doc = await PdfDocument.LoadFromFileAsync(file);
        if (doc != null)
        {
            for (int i = 0; i < doc.PageCount; i++)
            {
                PdfPage pdf_page = doc.GetPage((uint)i);

                IRandomAccessStream randomStream = new InMemoryRandomAccessStream();

                await pdf_page.RenderToStreamAsync(randomStream);
                MyImage = new WriteableBitmap((int)pdf_page.Size.Width,(int)pdf_page.Size.Height);
                await MyImage.SetSourceAsync(randomStream);
                await randomStream.FlushAsync();
                randomStream.Dispose();
                pdf_page.Dispose();

             Image img1=new Image();
             img1.Source=MyImage;
           imggrid.Items.Add(img1);
            }


        }
     private void btnunload_click(object sender, RoutedEventArgs e)
    {
      imggrid.Items.Clear();
        doc = null;
        folder = null;
        file = null;
        GC.Collect();
       GC.WaitForPendingFinalizers();
        GC.Collect();
    }

您可以使用任何Memroy Profiler应用程序(如“Sci-Tech.NET Memory Profiler”)查找内存泄漏,…

那么您就没有内存泄漏了!调用GC后,垃圾收集的内存候选和程序内存不会立即释放。如果你在乎的话?是的,但是为什么呢?有没有办法释放它?有没有办法让应用程序的内存恢复到初始状态?释放内存是CLR关注的问题,而不是你!为什么要管理内存使用率?是的,但当我第一次加载图像时,内存使用率高达100 mb,并且在处理对象后,它将无法恢复到原始状态,因此下次再次加载图像时,它将增加内存,这是我的问题。我想你应该阅读一些关于GC和内存使用率的文档,也许可以提供帮助。