가능한 중복 : 나는 방법 (S1) 및 메소드 (S2)를 가지고 C#을 WCF 서비스를 구현 한
Accessing PerSession service simultaneously in WCF using C#클라이언트 비동기 호출
. 메서드 s1은 처리를 수행하는 주 프로세스이며 메서드 s2는 두 개의 정적 int 변수 (total, current)를 기반으로 메서드 s1 상태를 추적하는 보조 메서드입니다.
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 가지 변수와 현재 변수가 정적 변수이기 때문입니다. 세 클라이언트가 모두 동시에 서비스를 호출하면 총 값과 현재 값이 각 클라이언트마다 분리되는 대신 혼합됩니다. 보통의 자격이 시나리오에서
예들은이 같이 있어야됩니다
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에서 원하는 클래스 이름으로 액세스 할 수 있습니다 프로그램. 그래서 나는 이것을 해결하는 방법을 이해할 수 없으므로 어느 누구라도 도움을받을 수 있습니다.