Microsoft MVP성태의 닷넷 이야기
[답변]: [추가]: [답변]: 아래 887번에 대한 추가 질문 [링크 복사], [링크+제목 복사],
조회: 10447
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
부모글 보이기/감추기


=== 클라이언트 ===
wcfobj.CallMethod();

=== 서버 ===
void CallMethod()
{
   ... 몇몇 작업 ...

   // 콜백
   foraech (...)
   {
      callback.호출();
   }
}

위와 같이 호출이 되는 상황으로 알고 있는데요. 콜백이 모두 끝날 때까지 처음 호출한 wcfobj.CallMethod는 실행 제어가 반환되지 않습니다.
또한 콜백 역시, "비동기"는 아닙니다. 클라이언트 측으로의 "호출"이 네트워크를 타고 "동기"로 이뤄지고 클라이언트 측의 메서드가 완료된 이후에야 그다음 콜백을 실행하게 됩니다.

지금 테스트까지 해본 것은 아니지만, Oneway 메서드라고 해도 결과값에 대한 "반환"을 기다리지 않는 것뿐, "호출"에 관한 SOAP 통신은 전달을 해야하기 때문에 클라이언트가 비정상 종료된 상태라면 역시 sendTimeout 동안 대기하게 됩니다.

(그러하니, ChartDatabaseChanged에서 당연히 블로킹 됩니다.)

만약, 굳이 서버 측의 메서드에서 ChartDatabaseChanged에 대해 완료됨을 기대하지 않아도 좋은 상황이라면 foreach 부분을 별도로 다른 스레드에 위임하는 것도 한 방법입니다. (예를 들어, ThreadPool.QueueUserWorkItem 메서드 이용)

inactivitytimeout 값은 개별적으로 적용됩니다. 서버에 설정되었다면 서버가 클라이언트를 체크하는 데 사용하고, 클라이언트 측에 설정되었다면 서버를 체크하는 데에 사용합니다. 서버는 inactivitytimeout == 3초, 클라이언트는 inactivitytimeout == 5초라면, 서버는 주기적으로 클라이언트로 3초마다 heart-beat을 체크하고 클라이언트도 역시 주기적으로 5초마다 서버로 heart-beat을 확인하게 됩니다.








[최초 등록일: ]
[최종 수정일: 7/5/2021]


비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5704따봉이8/4/20224899EventHandler 관련 [1]
5703조민준8/3/20224332안녕하세요 정적 멤버 초기화 관련 간단한 질문 [2]
5702석우8/3/20224233C# WPF Ribbon IsMinimized 프로퍼티 변경 감지 방법문의 [2]파일 다운로드1
5701김기헌8/1/20224478foreach 문으로 컬렉션을 열거할 때 궁금한 점 [2]
5699갓경섭7/29/20224909C# 프로그램 느려짐 현상 [2]
5698kss7/29/20225582ValueTask 질문입니다. [5]
5697스팸7/28/20225745윈도우서버 Port 고갈문제 (Event ID 4227, 4231) [3]파일 다운로드1
5696유석7/27/20225948닷넷 4.X 와 닷넷 6.0 버전 차이 [6]
5695초보코더7/26/20225352[WCF] EndpointNotFoundException 기본 연결이 닫혔습니다. 원격 서버에 연결할 수 없습니다. [1]
5693차가워7/22/20224790socket 종료 시 reveive수신부에서 에러 나는거 처리 문의 [5]
5692도비7/21/20224349Ubuntu LVM 확장 관련 [1]파일 다운로드1
5691따봉이7/21/20224997Task 비동기 UI 크로스 쓰레딩 Err 관련 [1]
5690훈이7/20/20224234wpf질문입니다 [2]
5689질문7/20/20224012비동기 함수를 사용하는 방법에 대한 질문입니다 [1]
5688김정현7/11/20224103소스 디버깅(F5)시 프로그램 켜지지 않고 디버깅 가능한 상태 [1]
5687규철7/6/20224240개발업무 문서 관리 방법 문의 [3]
5686권용완7/5/20224200Linq Entites 에서 string[]에 담긴 데이터를 제외하는 방법 문의 [3]
5685차가워7/4/20224367메모리 선택 문의 [1]
5683김민혁7/1/20224843HttpWebRequest POST 전송 관련해서 질문 드립니다. [4]파일 다운로드1
5682김기헌6/20/20224364안녕하세요 서로 다른 스레드에서 동일 인스턴스의 메소드를 호출할때 질문드립니다 [2]
5681미래는투...6/19/20224275VC++ 빌드 관련 문의 (h파일이 바뀌었는데 컴파일을 꼭 하지 않아도 되나요?) [1]
5680Syong6/12/20225244EXE파일에 속성값 추가하는 방법이 있나요? [2]파일 다운로드1
5679차가워6/8/20224445tcpip socket 여러 랜카드 사용 시 연결 문의 [1]
5678차가워6/7/20224327원자적 실행 문의 [3]
5677장성욱6/7/20224368블루투스 포트와 시리얼포트 연결시 에러 [2]
5675차가워5/29/20225055윈도우설정 프로세스사용계획 옵션과 c# 스레드 [1]
1  2  3  4  5  6  7  8  9  [10]  11  12  13  14  15  ...