我有这个控制台程序:
using System;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Task[] t =
{
Run()
};
Task.WaitAll(t);
Console.ReadLine();
}
private static async Task Run()
{
Console.WriteLine($"Running");
await Task.Delay(100);
Run();
}
}
}
由于某些原因,当我调试此内容并查看Process Memory (MB)
的图表时,它会略微上升。
但是当我拍摄快照并查看内存使用情况时,我看不出任何差异。
有人可以解释一下为什么它会上升吗? 还有什么我可以做的,以防止它上升?
编辑: 我尝试添加一个整数并在运行中递增它,并在Run()调用后递减它。
static int k = 0;
private static async Task Run()
{
k++;
Console.WriteLine($"{k} Running");
await Task.Delay(100);
Run();
k--;
}
以下是它的印刷品: