안녕하세요...델고수님들.....
이번에 물어볼건요....
쓰레드를 써서 폼을 만들었는데.....
폼이 close될때
ClientThread.terminate; //ClientThread는 제가 만든 스레드입니다.
ClientThread.WaitFor;
위와 같이 스레드를 중지시키고 action := cafree시켰거든요...
그런데 만약 스레드를 Create하기전에 폼을 닫아버리면 당연히 에러가 생깁니다...
스레드를 Create하기도 전에 terminate하니 당연히 에러가 나겠죠...
그래서 스레드가 Create되어있다면 중지시키고 Create되지 않았으면 중지시키지 않고
바로 폼을 종료시킬려고 합니다...
스레드가 Create되어있는지 어떤지를 아는 방법은 어떻게 하죠...
고수님들의 조언을 부탁드립니다...
Assigned함수를 쓰세요. 그럼 알 수 있습니다. 객체가 nil인가로 판단하는 것은 좀
위험하구요...
if Assigned(ClientThread) then
ShowMessage('ClientThread가 생성되어 있네요...')
else
ShowMessage('ClientThread가 생성되어 있지 않습니다...');
^^ 항상 즐코하세요.
델초... wrote:
> 안녕하세요...델고수님들.....
> 이번에 물어볼건요....
> 쓰레드를 써서 폼을 만들었는데.....
> 폼이 close될때
> ClientThread.terminate; //ClientThread는 제가 만든 스레드입니다.
> ClientThread.WaitFor;
> 위와 같이 스레드를 중지시키고 action := cafree시켰거든요...
> 그런데 만약 스레드를 Create하기전에 폼을 닫아버리면 당연히 에러가 생깁니다...
> 스레드를 Create하기도 전에 terminate하니 당연히 에러가 나겠죠...
> 그래서 스레드가 Create되어있다면 중지시키고 Create되지 않았으면 중지시키지 않고
> 바로 폼을 종료시킬려고 합니다...
> 스레드가 Create되어있는지 어떤지를 아는 방법은 어떻게 하죠...
> 고수님들의 조언을 부탁드립니다...
>