■ 메모리 해제하기

----------------------------------------------------------------------------------------------------

using System;

using System.Diagnostics;

using System.Runtime.InteropServices;

 

#region 프로세스 작업 세트 크기 설정하기 - SetProcessWorkingSetSize(processHandle, minimumWorkingSetSize,

    maximumWorkingSetSize)

 

/// <summary>

/// 프로세스 작업 세트 크기 설정하기

/// </summary>

/// <param name="processHandle">프로세스 핸들</param>

/// <param name="minimumWorkingSetSize">최소 작업 세트 크기</param>

/// <param name="maximumWorkingSetSize">최대 작업 세트 크기</param>

/// <returns>처리 결과</returns>

[DllImport("kernel32.dll")]

private static extern int SetProcessWorkingSetSize(IntPtr processHandle, int minimumWorkingSetSize,

    int maximumWorkingSetSize);

 

#endregion

 

#region 메모리 해제하기 - RelaseMemory()

 

/// <summary>

/// 메모리 해제하기

/// </summary>

public void ReleaseMemory()

{

    GC.Collect();

 

    GC.WaitForPendingFinalizers();

 

    if(Environment.OSVersion.Platform == PlatformID.Win32NT)

    {

        SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);

    }

}

 

#endregion

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요