VB.NET中各种对象(共享类、模块等)的可见范围有多广
我有一个VB.NET应用程序,其中各种对象将访问一些公共代码,我有一些计数器和值在所有调用之间共享,因此我目前使用的是“共享类”(我知道类本身不能共享,但所有变量和方法都标记为“共享”) 我关心的是这个对象的可见性——如果用户在同一个桌面上运行应用程序的两个实例,他们会使用共享类的同一个“实例”吗?换句话说,应用程序的两个副本是否都会增加相同的计数器并使用相同的变量 另外,同一台机器上的两个用户空间呢?如果每个用户运行一个副本,这两个副本会相互干扰吗 也许我在贬低“共享”的概念,有一种更好的方法可以做到这一点(我知道有些人通过模块而不是类来共享代码)。有没有更好的方法让对象(变量和方法)在整个应用程序中共享,但与其他应用程序实例分开 更新:VB.NET中各种对象(共享类、模块等)的可见范围有多广,vb.net,class,module,shared,multiple-instances,Vb.net,Class,Module,Shared,Multiple Instances,我有一个VB.NET应用程序,其中各种对象将访问一些公共代码,我有一些计数器和值在所有调用之间共享,因此我目前使用的是“共享类”(我知道类本身不能共享,但所有变量和方法都标记为“共享”) 我关心的是这个对象的可见性——如果用户在同一个桌面上运行应用程序的两个实例,他们会使用共享类的同一个“实例”吗?换句话说,应用程序的两个副本是否都会增加相同的计数器并使用相同的变量 另外,同一台机器上的两个用户空间呢?如果每个用户运行一个副本,这两个副本会相互干扰吗 也许我在贬低“共享”的概念,有一种更好的方法
在回答关于我的“首选”方式的问题时,我正在编写的应用程序需要保持数据私有,即使在用户正在运行的不同实例之间也是如此。在这种情况下,我根本不想在多个实例之间共享任何数据,这就是为什么我担心使用共享类或模块的副作用。谢谢您的提问。应用程序的每个实例,无论是由单个用户运行还是由多个用户运行,都将看到其自己的共享字段副本 更详细地介绍了静态/共享字段的作用域是线程而不是默认上下文(AppDomain)等项的情况。共享值(如果您是C#er,则为静态)仅在应用程序域中常见 甚至可以将多个应用程序域加载到同一个过程中,每个应用程序域都有自己的共享值集。您会思考是否有“更好的方法”来实现这一点,而不会实际说明您喜欢的方案中需要什么。是否希望能够为一个用户跨多个实例共享变量,但不希望为两个不同的用户共享变量?