2012-06-27 225 views
0

可能重复:
Accessing PerSession service simultaneously in WCF using C#客户端异步调用WCF服务

我已经实现了它有方法S1和S2的方法一个C#WCF服务。方法s1是处理的主要过程,方法s2是基于两个静态int变量(总计,当前)跟踪方法s1状态的辅助方法。

total ----> indicates the total number of tasks. 
current-----> indicates the current task that is being processed. 

我还创建了3个c#客户端,它们异步调用Web服务。这些下面提到的是客户端方法。

client1: c11,c12 
client2: c21,c22 
client3: c31,c32 

所有这3种客户端方法都会并行调用服务。所以现在我的问题是总共2个变量和当前是静态变量。当所有三个客户端同时调用服务时,总的和当前的值混在一起,而不是为每个客户端分开。在一个正常的符合条件的情况下

例如,他们都应该是这样的:

client1: (total,current)------>(3,1)(3,2)(3,3) 
client2: (total,current)------>(2,1)(2,2) 
client3: (total,current)------>(4,1)(4,2)(4,3)(4,4) 

,但现在我我的正常情况下我得到的所有混合起来作为总变量值的值不应该被改变对于任何客户它应该是相同的。因为这两个变量总和当前将被访问遍及我的wcf应用程序,并且会被修改,我将它们作为静态类在一个类中,以便它们可以作为全局的,并可以通过类名称访问我想要的wcf程序。所以我无法弄清楚如何解决这个问题,任何人都可以帮忙。

回答