2012-06-27 3 views
0

Можно создать дубликат:
Accessing PerSession service simultaneously in WCF using C#Client асинхронной вызов службы WCF

я реализовал с # ФОС сервис, который имеет метод s1 и s2 метод. Метод s1 является основным процессом, который обрабатывает и метод s2 является вторичным методом, который отслеживает состояние s1 метода на основе двух статических переменных int (total, current).

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

Я также создал 3 C# клиентов, которые асинхронно называют веб-службу. нижеприведенными являются клиентские методы.

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

все эти 3 клиентских метода делают обращения к службе параллельными. Итак, теперь моя проблема заключается в том, что 2 переменные total и current являются статическими переменными. когда все три клиента одновременно вызывают услугу, общее и текущее значения смешиваются, а не отдельные для каждого клиента.

пример нормальной приемлемой сценарии они должны быть такими:

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) 

но теперь я мой регулярный сценарий, я получаю значения все вперемешку как общее значение переменной не должно быть изменено для любого клиента предполагается, что он будет таким же. так как эти две переменные total и current будут доступны во всем моем приложении wcf и будут изменены, я сделал их статичными в классе, чтобы их можно было сделать глобальными, и к ним можно получить доступ по имени класса, где бы я ни захотел в wcf программа. Так что я не могу понять, как это решить, может кто-нибудь помочь.

ответ