.Net为每个dll和exe创建1个堆栈(用于存储值类型),还是为每个程序创建1个栈

本文关键字:创建 类型 程序 1个栈 exe dll 1个 堆栈 用于 Net 存储 | 更新日期: 2023-09-27 18:24:53

我正在创建一个服务,该服务将由演示程序使用。我正处于将类型定义为类或结构的岔路口。.Net为每个dll和exe创建1个堆栈(用于存储值类型),还是为每个程序创建1个栈。我非常确定它为每个程序创建一个托管堆,但不确定堆栈。请帮帮我。

谢谢,Omkar

.Net为每个dll和exe创建1个堆栈(用于存储值类型),还是为每个程序创建1个栈

首先,堆栈是一个实现细节。

碰巧,在一个进程中,每个进程有1个堆*,每个线程有1个堆栈,但您不应该关心这一点,当然也不应该在类和结构之间进行选择时使用这一点。

请参阅C#中何时使用结构?

(*)好吧,反正是1个托管堆

由于一个调用堆栈可能包含来自不同程序集的调用,并且每个线程都有自己的堆栈跟踪,因此每个线程显然只有一个堆栈。

相关文章: