今天的PC有大量的物理RAM,但是C#的堆栈大小对于32位进程只有1 MB而对于64位进程只有4 MB(C#中的堆栈容量).
为什么CLR中的堆栈大小仍然如此有限?
为什么它恰好是1 MB(4 MB)(而不是2 MB或512 KB)?为什么决定使用这些金额?
我对该决定背后的考虑因素和原因感兴趣.
我正在学习异步和等待在编程中如何工作。我在互联网上看到这个例子,说这是异步代码:
class Program
{
static async Task Main(string[] args)
{
Method2();
var count = await Method1();
Method3(count);
Console.ReadKey();
}
static async Task<int> Method1()
{
int count = 0;
await Task.Run(() =>
{
for (int i = 0; i < 3; i++)
{
Console.WriteLine(" Method 1");
count += 1;
}
});
return count;
}
static void Method2()
{
for (int i = 0; i < 3; i++)
{
Console.WriteLine(" Method 2");
}
}
static void Method3(int count)
{
Console.WriteLine("Total count is …Run Code Online (Sandbox Code Playgroud)