Можно создать дубликат:
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 программа. Так что я не могу понять, как это решить, может кто-нибудь помочь.