Microsoft MVP성태의 닷넷 이야기
[답변]: [추가]: [답변]: 아래 887번에 대한 추가 질문 [링크 복사], [링크+제목 복사],
조회: 15434
글쓴 사람
정성태 (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]


비밀번호

댓글 작성자
 




... 76  77  78  79  80  81  82  83  84  85  86  87  88  [89]  90  ...
NoWriterDateCnt.TitleFile(s)
241김재옥10/5/200511179smart client에서의 Socket 함수 사용 [1]
240이형배9/15/200510780스마트클라이언트배우고 싶어여... [1]
239장강현9/14/200515629SmartClient에서의 배포 문제에 대해 [2]
238이순원9/13/200510952디버깅 할때 native 옵션껐는데두 너무 느려요.. [1]
236코디9/12/200510939[질문]런타임 보안 배포 [1]
237코디9/13/200511503    답변글 [재질문]: [질문]런타임 보안 배포 [1]파일 다운로드1
235임은선9/9/200513517스마트 클라이언트 배포시 환경파일인 app.config는 어떻게 배포 해야하나요...? [2]
234임은선9/7/200512295스마트 클라이언트 보안문제관련해서 질문이 있습니다.. [2]
233이한욱8/31/200520415가상 시리얼 포트(Virtual COM Port) 만들기 [1]
232정준명8/30/200512044[질문] HTTP 모듈/핸들러 또는 RewriteURL 관련입니다. [4]
231이진일8/30/200511072참조한 dll 들은 어떻게 배포하나요...? [1]
2303028/29/200512011[질문] 웹에서 Exchange Server 사용자 추가 [2]
229김재명8/26/200511557성태님의 홈페이지 J & J의경우 보안모듈을 어떻게 해결하셨는지 궁금합니다. [1]
227임규진8/24/200511378리소스 파일에 그림 첨가하는 방법 좀 알려 주세요. [1]
226최인호8/19/200511390스마트 클라이언트 exe 버젼 실행시 시간이 너무 오래 걸립니다. [1]
225코디8/17/200511607[질문]닷넷프레임워크 설치여부 [1]
224박준현8/17/200511157[질문]중첩 그리드라고 해야 할까요? [1]
223매커7/28/200510605강좌 잘 읽었습니다. [1]
222김지영7/27/200512076C#에서 oledb 사용하다가 에러 [2]
221박민우7/26/200512594스마트클라이언트에서의 DB접속 [1]
220테드7/22/200511614스마트 클라이언트에서 원치 않는 패킷 송수신 문제... [3]
219김종욱7/21/200512028안녕하세요... 툴밴드 콤보 박스에 대해.. [1]
2187/21/200510664스마트 클라이언트에 대한 질문 입니다. [1]파일 다운로드1
217왕초보7/21/200511294마소강좌의 AxForSmartClient 를 실행시키고 싶은데요... [1]
215궁금증6/23/200510872도대체 이게 무슨 에러 일까요... [1]
213궁금이6/18/200512582Winform 형태의 NTD에서 사용자 로그인 성공 여부 정보 유지하는 방법 [1]
... 76  77  78  79  80  81  82  83  84  85  86  87  88  [89]  90  ...