Q&A

  • 흑흑흑....쓰레드가 디게 저를 괴롭히는군요...고수님들 부탁...
고수님들 쓰레드에 문제가 있어서 이렇게 자주...쓰레드만 가지고 질문을 올립니다..

간단히 코드를 말하면요....

TClientthread = class(TThread)

protected

procedure Execute; override;

end;



var

ClientThread : TClientThread;//선언부.....

//버튼클릭이벤트....

procedure TForm1.Button1Click(Sender: TObject);

begin

if assigned(ClientThread) then begin

if not ClientThread.terminated then begin

ClientThread.terminate;

ClientThread.waitfor;

end;

end;

ClientThread := TClientThread.Create(True);

ClientThread.FreeOnTerminate := True;

ClientThread.Resume;

end;



//쓰레드 실행루틴...

procedure TClientThread.Execute;

begin

while not terminated do begin

//실행연산을 수행한다....

end;

end;



//폼이 종료될때..

if Assigned(ClientThread) then begin

ClientThread.Terminate;

ClientThread.WaitFor;

end;

action := cafree;



이런 식으로 프로그램을 코딩했는데요..... 거의 다 잘되는데요.....

가끔가다가 프로그램이 화면도 그대로인 상태로 정지해버립니다.....왜그런지

며칠동안 아무리 머리를 싸매도 알수가 없군요...

부디..은총을......



5  COMMENTS