gpt4 book ai didi

c# - 退出后应用程序保留在内存中

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:42 24 4
gpt4 key购买 nike

我有一个用 C# 编写的应用程序,它还充当服务器上 Web 应用程序的服务。问题是当我们关闭应用程序(不是来自 Web)时,它会停留并显示在保留所有内存的任务管理器中。我们可以从任务管理器中杀死它,但是当它从 web 中使用时,每次它都会创建一个新进程并保持内存分配。

我应该在 OnExit 做什么

public void OnExit()

因此它应该删除它创建的所有进程实例并清除内存。我还在我的代码中使用

进行互操作清理
System.Runtime.InteropServices.Marshal.ReleaseComObject(item);
item = null;
GC.Collect();

请提供一些建议

最佳答案

以下可能与您的进程名称一起使用,其中显示“进程名称”。不确定这可能有多干净或高效。 .NET 中的 GC 应该捕获进程并最终杀死它,这是 .NET 和 CIL 语言的优势之一。

public void OnExit() {
try {
foreach(System.Diagnostics.Process myProc in System.Diagnostics.Process.GetProcesses())
if (myProc.ProcessName == "process name")
myProc.Kill();
} catch(Exception ex) {}
}

关于c# - 退出后应用程序保留在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24767515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com