如何在 C# 中强制垃圾收集?
csharpserver side programmingprogramming更新于 2025/4/17 18:52:17
是的,可以通过调用 Collect() 方法强制运行 C# 中的垃圾收集器
这不被认为是一种好的做法,因为这可能会造成性能开销。 Collect() 强制立即对所有代进行垃圾收集。
Collect(Int32)强制立即从第 0 代到指定代进行垃圾收集。
示例
using System;
class MyGCCollectClass{
private const int maxGarbage = 1000;
static void Main(){
// 将一些对象放入内存。
MyGCCollectClass.MakeSomeGarbage();
Console.WriteLine("收集前使用的内存:{0:N0}",
GC.GetTotalMemory(false));
// 收集所有代的内存。
GC.Collect();
Console.WriteLine("完全收集后使用的内存:{0:N0}",
GC.GetTotalMemory(true));
}
static void MakeSomeGarbage(){
Version vt;
// 创建对象并释放它们,以用未使用的对象填充内存。
for(int i = 0; i < maxGarbage; i++){
vt = new Version();
}
}
}

