首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从两个不同的应用程序访问类库的公共变量

从两个不同的应用程序访问类库的公共变量
EN

Stack Overflow用户
提问于 2018-07-06 10:32:04
回答 1查看 534关注 0票数 0

我有一个用c#开发的类库,它有类似的东西,如下所示。它有一个类ClassLib。它有一个公共变量somevariable和2个methods.One方法分配这个变量的值,有一个方法使用这个变量。

代码语言:javascript
复制
class ClassLib
{
    public string somevariable;
    public void SomeMethod1()
    {
        somevariable = "someData";
    }
    public void SomeMethod2()
    {
        string finalValue = somevariable;
    }
}

现在我有了两个不同的窗口服务,其中引用了这个类库。

Windows 1中,它有一些类似的代码。

代码语言:javascript
复制
public class Application1
{
    public void AppMethod1()
    {
        ClassLib c1 = new ClassLib();
        c1.somevariable = "Application 1 Data";
        c1.SomeMethod2();
    }
}

这个类将值赋值给公共变量,并调用第二个方法来使用它。

Windows 2 :

代码语言:javascript
复制
public class Application2
{
    public void AppMethod2()
    {
        ClassLib c1 = new ClassLib();
        c1.SomeMethod1();
        c1.SomeMethod2();
    }
}

这就调用了这两个方法。

这两个窗口服务现在运行continuously.So --我的问题是,如果两个服务同时运行,并且引用类库中的同一个类,这会影响somevariable的值吗?由于一个应用程序正在分配该值,而另一个应用程序试图使用来自SomeMethod1的现有值。

换句话说,在WindowsService2中,当调用c1.SomeMethod2()时,somevariable的值在任何时候都会是"Application 1 Data"吗?这些值会重叠吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-06 10:39:23

不是的。每个Windows服务都作为自己的进程运行,这意味着它有自己的堆。因此,两个服务之间没有共享内存,即使它们引用相同的DLL。

有一些方法可以在进程之间创建共享的数据,但只有在代码做了一些不寻常的事情时才能这样做。正常变量不共享。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51208448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档