【问题标题】:WCF with multiple clients具有多个客户端的 WCF
【发布时间】:2015-08-28 20:41:28
【问题描述】:

我正在尝试通过这个示例学习 WCF http://www.codeproject.com/Articles/39143/C-WCF-Client-Server-without-HTTP-with-Callbacks-Ma

还尝试通过添加与多个客户端的互斥来扩展服务器上的功能。 我基本上是在尝试拥有一个全局数字数组和一个可以访问该数组的函数(已通过 Operationcontract 公开)。但一次只允许一个客户端访问该数组。

有人可以通过添加一个带有互斥锁的简单函数来为我指明正确的方向吗?

【问题讨论】:

    标签: wcf


    【解决方案1】:

    取决于你到底想做什么,如何在访问你的数组的函数周围加个锁(也许事件把你的数组变成一个单例)。

    那么你可以拥有

    class SingletonClassForYourArray {
       object aLock = new object();
       int yourArray;
       private SingletonClassForYourArray instance;
    
       public SingletonClassForYourArray GetInstance()
       {
       // normal singleton init of instance on demand
       }
    
       int [] YourArray 
       {
           get 
           {
               lock(aLock)
               {
                   return yourArray;
               }          
           }
       }
    }
    

    这将是只有一个客户端访问阵列的最简单方法。所有没有锁的客户端都必须轮流等待(不能保证公平)。请小心,因为如果客户端必须等待很长时间,这可能会导致超时。

    【讨论】:

    • 非常感谢..正是我想要的,它工作正常。
    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2021-08-12
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多