В приведенном ниже коде объект стартера устанавливается на NULL, и GC.Collect () вызывается, но фоновая задача все еще работает, а объект не собирается: < /p>
namespace ConsoleApp5
{
internal class Program
{
static void Main(string[] args)
{
Starter s = new();
s.Start();
s = null;
GC.Collect(0, GCCollectionMode.Forced);
GC.Collect(1, GCCollectionMode.Forced);
GC.Collect(2, GCCollectionMode.Forced);
Console.ReadLine();
}
}
public class Starter
{
int a = 0;
public void Start()
{
Task.Run(() =>
{
while (true)
{
a++;
Console.WriteLine(a);
}
});
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -gc-collec
Мобильная версия