Files
linker/common.libs/GCHelper.cs
snltty eb08f03738 init
2023-09-14 15:16:12 +08:00

28 lines
759 B
C#

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace common.libs
{
public static class GCHelper
{
[DllImport("kernel32.dll")]
public static extern bool SetProcessWorkingSetSize(IntPtr proc, int min, int max);
public static void FlushMemory()
{
GC.Collect();
GC.SuppressFinalize(true);
GC.WaitForPendingFinalizers();
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);
}
}
public static void Gc(object obj)
{
GC.Collect();
GC.SuppressFinalize(obj);
}
}
}