2012-06-27 2 views
0

가능한 중복 : 나는 방법 (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에서 원하는 클래스 이름으로 액세스 할 수 있습니다 프로그램. 그래서 나는 이것을 해결하는 방법을 이해할 수 없으므로 어느 누구라도 도움을받을 수 있습니다.

답변

0

기본적으로 서비스는 클라이언트 당 자체 인스턴스입니다. ConcurrencyMode으로 조정할 수 있습니다.