|
Execute() 함수의 while()문이 혼자 죽어라 돌아가서 점유율이 치솟은 겁니다.
잠깐씩 쉬어가라고 Sleep() 걸어주면 됩니다.
void __fastcall TRS232CRxThread::Execute()
{
DWORD dwEventMask;
DWORD dwErrorFlags;
COMSTAT CommStatus;
while(!Terminated)
{
Sleep(1); <== 여기 추가
dwEventMask = 0;
................
}
허접 님이 쓰신 글 :
: 안녕하세요. 허접입니다.
: 정말 정말 급하게 질문 드립니다.
: 자료실에 RS232 테스트 프로그램이라 하여 시리얼 통신을 가능케 하는 프로그램을 다운받아 제 나름껏 수정하여 사용하고 있었습니다.
: 처음에는 동작에 특이한 이상이 없어서 잘 사용을 하고 있었는데요.
: 프로그램이 조금씩 복잡해지고 추가되는 기능이 많아지면서 부터 문제가 생겼습니다.
: 빌더에 activex 와 cppwebbrowser 컴포넌트 등을 추가하여 실행을 하면 너무너무 늦게 실행이 되더라구요.
: 프로그램을 실행시키면 리소스가 100%가 되더군요. 처음에는 activex 나 cppwebbrowser 컴포넌트의 문제점이라 생각을 했습니다.
: 하지만, 혹시나 하는 마음에 이 곳 자료실에서 받은 RS232 통신용 프로그램만 실행시켜 보았습니다.
: 그런데.. 헉.. 데이터 수신이 없는 상태에서도.. 프로그램을 실행만 시키면 리소스가 100%가 되는것이었습니다.
: 소스를 보아도 모르겠고, 시간은 없고 미치겠습니다.
: 자료실에 있는 RS232 프로그램을 첨부하여 올리겠습니다.
: 다운 받아서 exe 실행시켜 보시면 아마도 리소스가 100%로 올라가는 것을 확인하실 수 있을겁니다.
: 왜 그런건지.. 도무지 모르겠습니다.
: 고수님들.. 그 동안 제가 드렸던 질문에 많은 도움 주셨던 분들.. 제발 도와주세요.. ㅠ.ㅜ
|