I have created windows store app using c#. In which i am creating image form pdf using pdfdocument class and display in the image. on button click i am removing the objects and call garbage collector after disposing all object why memory is not released?
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();
}
You can find Memory Leak by using any Memroy Profiler App like 'Sci Tech .NET Memory Profiler', ...