具有多个客户端的WCF

时间:2012-09-17 11:20:52

标签: wcf

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

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

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

1 个答案:

答案 0 :(得分: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;
           }          
       }
   }
}

这是只有一个客户端访问数组的最简单方法。所有没有锁的客户都必须轮流等待(公平性不保证)。请注意,如果客户需要等待很长时间,这可能会导致超时。