.net 处理GAC包含的组件中的共享

.net 处理GAC包含的组件中的共享,.net,thread-safety,gac,.net,Thread Safety,Gac,我知道,当创建DLL并将项声明为“共享”(在C#中为静态)时,它们在第一次调用时被实例化,然后该对象引用作为单个引用继续存在 因此,一旦设置了共享字符串属性,就可以再次调用它来检索相同的值。而线程安全则是应用程序领域中的一个主要问题 在应用程序域之外发生的事情。如果我们将程序集放在全局应用程序缓存(GAC)中,将存在多少实例 例如,GAC'ed.dll中名为“MyFileName”的静态属性 然后我们有两个应用程序调用GAC'ed.dll。“MyFileName”将存在多少个实例?是否会将应用程

我知道,当创建DLL并将项声明为“共享”(在C#中为静态)时,它们在第一次调用时被实例化,然后该对象引用作为单个引用继续存在

因此,一旦设置了共享字符串属性,就可以再次调用它来检索相同的值。而线程安全则是应用程序领域中的一个主要问题

在应用程序域之外发生的事情。如果我们将程序集放在全局应用程序缓存(GAC)中,将存在多少实例

例如,GAC'ed.dll中名为“MyFileName”的静态属性


然后我们有两个应用程序调用GAC'ed.dll。“MyFileName”将存在多少个实例?是否会将应用程序一的MyFileName更改为应用程序二使用的值?

dll在AppDomain中实例化,因此不同副本的数量与AppDomain的数量相同。数据不会在AppDomains之间传输。将DLL放在GAC中只会使它在一个地方对所有内容都可用,它不会改变.net的内存模型。

这是我的想法,但我想100%确定!