|
TComThread가 어떻게 생겼는지 몰라서 정확한 답변이 될지는 모르겠구요,
소스상으로는 ComT에 제대로 된 인자가 넘어온다고 가정을 하면
OnPackaetReceived 이벤트가 thread safe한지(Synchronize를 사용했는지) 확인해 보시기 바랍니다.
윤상영 님이 쓰신 글 :
: 우선 저번에 대답을 주신 이경문님 감사드립니다..
: 그렇게 하니 잘되더군요..
: 그런데 다른데에다가 적용을 할려구 하니 안되는 군요..
: 그래서 다시한번 질문을 드립니다..
:
: for(int i = 0 ; i < 256 ; i++)
: {
:
: ComThread[i] = new TComThread(this);
:
: ComThread[i]->ComClose();
: ComThread[i]->Port = i+5;
: ComThread[i]->OnPacketReceived = ComThreadPacketReceived;
:
: }
: 와 같이 ComThread 컴포넌트를 구해서 데이터를 받으면 ComThreadPacketReceived롤 들어가도록 설정했읍니다.
: 그런데 같은방법으로 하니까 안되는 군요..
:
: void __fastcall Form1::ComThreadPacketReceived(TObject *Sender,AnsiString &buffer)
: {
: TComThread *ComT = (TComThread *)Sender;
: ShowMessage(IntToStr(ComT->Port));
: }
: 무엇이 잘못됐나요..
: 부탁 드리겠읍니다..
:
: 그럼 좋은 하루 되세요..
|