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
[51921] [질문]Async Pro사용중인데 실행중 CPU가 100%됩니다.
조윤상 [] 1072 읽음    2008-01-16 21:27
안녕하세요...
제가 Async Pro ApdComPort를 이용해서 Terminal을 만들었는데요
사용 중 문제가 있어 질문드립니다.

장비2대가 연결되있고 PC는 한대입니다.
PC에 Terminal창 두개 만들고 ApdComPort도  두개 만들었는데 실행중 문제가
있습니다.  

문제1.
처음 실행후 얼마동안은 작동이 잘되다가 어느순간 Terminal화면이 멈춰버리고
키도 입력이 안됩니다. 그러다 끊고 다시 연결하면 또 잘됩니다.

문제2.
어느순간 CPU사용률이 100%되면서 프로그램이 죽어있는것처럼 됩니다.

제 생각에는 콤포넌트 내부Buffer를 사용하면서 지우지 않아서 생기는 현상 같습니다.
혹시 몰라 소스첨부합니다.

//장비1의 TriggerAvail이벤트 함수:
void __fastcall TMrTerminalMainForm::ApdComPort1TriggerAvail(TObject *CP,
      WORD Count)
{
    char* pBuffer ;

    try
    {
        ReceiveBufLen = Count;
        if(ReceiveBufLen <= 0 )
        {
            ApdComPort1->Open  = false;
            return;
        }
        pBuffer = new char[Count] ;
        memset(pBuffer, 0, sizeof(pBuffer));

        for (int i=0;i<Count;i++)
        {
            pBuffer[i] = ApdComPort1->GetChar();
        }

        ReceiveBuf = (char *)pBuffer;

          if(ReceiveBuf != "")  //if(pBuffer != NULL)
            AddToMemo();
    }
    __finally
    {
        delete[] pBuffer;
    }
}
//---------------------------------------------------------------------------

//장비2의 TriggerAvail이벤트 함수:
void __fastcall TMrTerminalMainForm::ApdComPort2TriggerAvail(TObject *CP,
      WORD Count)
{
    char* pBuffer2;

    try
    {

        ReceiveBufLen2= Count;

        if(ReceiveBufLen2<= 0 )
        {
            ApdComPort2->Open  = false;
            return;
        }
        pBuffer2= new char[Count] ;

        memset(pBuffer2, 0, sizeof(pBuffer2));

        for (int i=0;i<Count;i++)
        {
            pBuffer2[i] = ApdComPort2->GetChar();
        }

        ReceiveBuf2= (char *)pBuffer2;

        if(ReceiveBuf2!= "")
            AddToMemo2();

    }
    __finally
    {
        delete[] pBuffer2;
    }

}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
51921 [질문]Async Pro사용중인데 실행중 CPU가 100%됩니다. 조윤상 1072 2008/01/16
51956     Re:[질문]Async Pro사용중인데 실행중 CPU가 100%됩니다. 열씸! 1432 2008/01/18
51976         Re:Re:[질문]Async Pro사용중인데 실행중 CPU가 100%됩니다. 조윤상 1173 2008/01/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.