** [DllImport("kernel32.dll", CharSet = CharSet.Auto)]**
private static extern uint GetPrivateProfileSectionNames(IntPtr lpszReturnBuffer, uint nSize, string lpFileName);
** [DllImport("kernel32.dll", CharSet = CharSet.Auto)]**
private static extern uint GetPrivateProfileSection(string lpAppName, IntPtr lpReturnedString, uint nSize, string lpFileName);
客户要求服务器获取的数据 不断写入ini文件里,方便客户前端不断调用ini里的数据,我使用api函数不断写ini,但发现进程内存不断增加,这时候调用api函数 应该考虑释放,不会GC,请教怎么释放??
[DllImport("kernel32.dll")]
public static extern bool SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
public static void GarbageCollect()
{
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
}
public static void FlushMemory()
{
GarbageCollect();
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
}
}
试一下SetProcessWorkingSetSize() 是否可以挂起线程,并强制回收。