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
[29211] 스레드 도움좀 주세요. 너무 힘들어요.
최상천 [kangnung] 1145 읽음    2004-03-30 15:36
아래 질문에 대충 썼는데 해결이 안되어서 다시 질문드립니다.

============================================================================

메인폼에서 인스턴스로 가지고 있는 RS-232 통신 클래스가 있습니다. ==> m_pPlc
class TFormMain : public TForm
{
public:
    TPlc *m_pPlc;
    스레드 *m_pPlcMon;
};

이(TPlc) 클래스 메소드중에 아래와 같은 메소드가 있습니다.
이 메소드를 실행하는데 약 3초 정도 걸립니다.
TPlc::SendString
{
    g_pCS1->Acquire ();
.
.
.
    g_pCS1->Release ();
}

문제는 스레드함수1이 SendString 함수를 계속적으로 호출하는 기능을 합니다.

m_pPlcMon::스레드함수1
{
    //---- Place thread code here ----
    //AnsiString Str;
    while (!Terminated)
    {
        Str = SendString ();호출
        if (!Str.IsEmpty())
            SendMessage (m_hHandle, PLC_RESPONSE, NULL,  (LPARAM)Str.c_str());
        Sleep (1);
    }
}

메인폼에서 버튼을 누를때 아래와 같습니다.
위에 스레드1을 죽이죠.
void __fastcall TFormMain::ButtonClick()
{
    if (m_pPlcMon)
    {
        m_pPlcMon->Terminate ();
        WaitForSingleObject ((HANDLE)m_pPlcMon->Handle, INFINITE);
        delete m_pPlcMon;
        m_pPlcMon = NULL;
    }
}

그런데 버튼만 누르면 WaitForSingleObject 함수 아래로 진행이 안되네요.
많은 방법을 다 동원 해 봤지만 도저히 해결을 할 수가 없는데...
스레드가 가 Critical Section 내부에 들어갔을때 m_pPlcMon->Terminate (); 이 부분이 문제가
되는건지....Synchronize 써도 마찬가지고...

이게 왜 그런지 원인을 아시는분 가르침을 주십시요.

+ -

관련 글 리스트
29211 스레드 도움좀 주세요. 너무 힘들어요. 최상천 1145 2004/03/30
34734     Re:스레드 도움좀 주세요. 너무 힘들어요. 미루 1368 2004/03/31
29212     Re:스레드 도움좀 주세요. 너무 힘들어요. 수야!╋ 1482 2004/03/30
34733         Re:Re:스레드 도움좀 주세요. 너무 힘들어요. 수야!╋ 1260 2004/03/31
34732         Re:Re:스레드 도움좀 주세요. 너무 힘들어요. 김시환 1312 2004/03/30
34731         Re:Re:스레드 도움좀 주세요. 너무 힘들어요. Builder MySelf 1075 2004/03/30
34730         Re:Re:스레드 도움좀 주세요. 너무 힘들어요. Builder MySelf 1087 2004/03/30
34729         Re:Re:스레드 도움좀 주세요. 너무 힘들어요. 최상천 1261 2004/03/30
34728         Re:Re:스레드 도움좀 주세요. 너무 힘들어요. 최상천 1140 2004/03/30
34727         Re:Re:스레드 도움좀 주세요. 너무 힘들어요. Builder MySelf 1146 2004/03/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.