C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49200] Re:Re:스레드 동기화 문제 - 힘듭니다.
worldfip [] 1538 읽음    2007-05-08 16:40
혹시나 해서 해 봤는데 마찬가지 군요.
전홍진 님의 생각이 맞는듯 합니다.
아이디어를 내 봐야 겠네요.


김시환 님이 쓰신 글 :
: 소스를 보니 232포트 객체를 메인 폼의 멤버로 두셨네요...
: 제 경우는 232포트 객체를 전역객체로 사용했습니다.
:
: 그리고 세마포어 보다는 크리티컬섹션을 사용했습니다.
: 크리티컬섹션 객체 역시 전역으로 선언했습니다.
:
: 아래의 것들을 모두 Global.Cpp 를 만들어 전역으로 선언해서 사용했습니다.
:
: SerialComm* pSerialPort[MODULE_NUM] ;                                   // Serial Port object
: CRITICAL_SECTION g_Critical_Section[MODULE_NUM] ;               //  Critical Section object
: Meas_Control* pThread_Cont[RACK_NUM][MODULE_NUM] ;      // Thread object
:
: 그리고 메인이 되었건 전역함수가 되었건 쓰레드가 되었건
: 포트를 사용할 때 아래처럼 사용하면 전혀 데드락 없이 잘 동작했습니다. 
:
: //=============   포트 사용할 때 방법=========================
:         try
:         {
:             EnterCriticalSection(&g_Critical_Section[m_iCommNumber]) ;
:
:             pSerialPort[m_iCommNumber]->Write(data, strlen(data)) ;
:             memset(data, 0x00, sizeof(data)) ;
:             Sleep(50) ;
:             pSerialPort[m_iCommNumber]->Read(data, cnt) ;
:         }
:         __finally
:         {
:             LeaveCriticalSection(&g_Critical_Section[m_iCommNumber]) ;
:         }
: //======================================================

+ -

관련 글 리스트
49192 스레드 동기화 문제 - 힘듭니다. worldfip 1745 2007/05/08
49198     Re:스레드 동기화 문제 - 힘듭니다. 김시환 1597 2007/05/08
49200         Re:Re:스레드 동기화 문제 - 힘듭니다. worldfip 1538 2007/05/08
49193     Re:스레드 동기화 문제 - 힘듭니다. 권상득 1559 2007/05/08
49195         Re:Re:스레드 동기화 문제 - 힘듭니다. worldfip 1369 2007/05/08
49201             Re:Re:Re:스레드 동기화 문제 - 힘듭니다. 공부맨 1929 2007/05/08
49194         Re:Re:스레드 동기화 문제 - 힘듭니다. 전홍진 1693 2007/05/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.