자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
C++ Builder C++ builder 10.2 에서 Android 에 쓰래드 사용시 종료 문제
2018.05.25 19:31
Android 앱에서 종료시 '예상치 않게 중지 되었습니다.' 라는 경고 창이 떠서 확인하다 보니 쓰래드에서 문제가 되는 것 같습니다.
__fastcall TidKClient::TidKClient(TComponent* Owner) : TIdTCPClient(Owner) {
CheckConnect = false;
wt = new TidKWriteThread(this);
rt = new TidKReadThread(this);
et = new TidKEventThread(this);
ReadTimeout = 5;
}
//---------------------------------------------------------------------------
__fastcall TidKClient::~TidKClient(void) {
CheckConnect = false;
if(Connected()) {
if(wt->Suspended) wt->Resume();
if(rt->Suspended) rt->Resume();
if(et->Suspended) et->Resume();
wt->Terminate();
rt->Terminate();
et->Terminate();
wt->WaitFor();
rt->WaitFor();
et->WaitFor();
}
delete wt;
delete rt;
delete et;
}
통신 관련하여 만든 것인데 클래스로 만들어서 FormCreate 시에 생성해주고 있습니다.
윈도우 어플에서는 문제 없이 잘 동작하는데 Android 앱에서는 문제가 되는가 봅니다.
C++ Builder C++ builder 10.2 에서 Android 에 쓰래드 사용시 종료 문제
2018.05.25 19:31
Android 앱에서 종료시 '예상치 않게 중지 되었습니다.' 라는 경고 창이 떠서 확인하다 보니 쓰래드에서 문제가 되는 것 같습니다.
__fastcall TidKClient::TidKClient(TComponent* Owner) : TIdTCPClient(Owner) {
CheckConnect = false;
wt = new TidKWriteThread(this);
rt = new TidKReadThread(this);
et = new TidKEventThread(this);
ReadTimeout = 5;
}
//---------------------------------------------------------------------------
__fastcall TidKClient::~TidKClient(void) {
CheckConnect = false;
if(Connected()) {
if(wt->Suspended) wt->Resume();
if(rt->Suspended) rt->Resume();
if(et->Suspended) et->Resume();
wt->Terminate();
rt->Terminate();
et->Terminate();
wt->WaitFor();
rt->WaitFor();
et->WaitFor();
}
delete wt;
delete rt;
delete et;
}
통신 관련하여 만든 것인데 클래스로 만들어서 FormCreate 시에 생성해주고 있습니다.
윈도우 어플에서는 문제 없이 잘 동작하는데 Android 앱에서는 문제가 되는가 봅니다.
wt->WaitFor();
rt->WaitFor();
et->WaitFor();
세줄을 지우니 문제가 없네요.
왜그런지 궁금하네요. ㅠㅠ