Q&A

  • [질문] Thread 중지 방법


Indy TCP 통신프로그램에서 아래와 같은 Thread를 하나 선언했습니다.

TPMonitorHandleThread = class(TTHread)
    procedure Execute; override;
    procedure PMDataProcess;
  end;

그리고 생성과 실행을 아래와 같이 했구요.

procedure TfrmPM_MX13i.FormActivate(Sender: TObject);
begin
    PMonitorHandleThread := TPMonitorHandleThread.Create(true);
    PMonitorHandleThread.FreeOnTerminate := true;
    PMonitorHandleThread.Resume;
end;

실행 중에 중지시키기 위해서 아래와 같은 준비를 했습니다.

procedure TfrmPM_MX13i.BitBtn1Click(Sender: TObject);
begin
  PMonitorHandleThread.Terminate;
end;

그런데 실행까지는 문제없이 잘 되는데 중지가 안됩니다.
그래서 BitBtn1 Button에 'bkClose kind' 속성을 주었는데 이 경우 중지는 되는데 에러메시지가 뜨네요.(첨부 그림 참조)

순조롭게 중지시키려면 어떻게해야 할까요.

0  COMMENTS