IntPtr handle=IntPtr.Zero;
Marshal.FreeCoTaskMem(handle);
Marshal.FreeHGlobal(handle);
CloseHandle(handle);
以上两个方法有什么不同吗?
还有就是如何知道有没有产生内存泄漏?
var hWnd = GetConsoleWindow();
Marshal.FreeCoTaskMem(hWnd);
/**
* 还有点疑惑,上面的代码关闭控制台程序和直接点窗体的x,
* 或是调用 "Environment.Exit(0);" 的区别是……
*/
1
lxilu 2020-11-21 14:58:06 +08:00
Marshal.FreeXXX 只应搭配 Marshal.AllocXXX
CloseHandle 是前于 GC 手动关控柄,不是必要的 不要对控制台做奇怪的事情啦 |