Limpiar memoria de aplicaciones winforms con c#

Cuantas veces no nos hemos encontrado con el problema de la memoria en nuestras aplicaciones winforms porque la memoria empieza a crecer y a crecer y a crecer sin final.

Gracias a no se quien dejo aquí la clase que nos servirá para limpiar la memoria de nuestra aplicación que no se esta utilizando... muy práctica...

Para utilizarla solo debemos llamarla así:

MemoryManagement.FlushMemory();

Y eso es todo... la clase es esta:

 public class MemoryManagement
    {
        [DllImportAttribute("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet =
        CharSet.Ansi, SetLastError = true)]

        private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int
        maximumWorkingSetSize);

        public static void FlushMemory()
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();
            if (Environment.OSVersion.Platform == PlatformID.Win32NT)
            {
                SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
            }
        }
    }

Espero les sirva como me funcionó a mi.

Sean felices! :) Y siéntanse libres de opinar ;)

No hay comentarios:

Publicar un comentario