|
안녕하세요? 개박살입니다 (또, 자네군.. --)
쓰레드를 생성하고 죽이려고 하면, 스레드자체로써의 메모리 공간은 접근금지입니다.
쓰레드를 죽일때 쓰이는 방법론은
while(true) // 여기서 이렇게 하면 안되죠..
while(변수) 이렇게 고치고
스레드를 만들때 맴버변수 FreeOnTerminate를 true로 설정해주시고
위의 변수를 false로 만들어서 죽입니다.
FreeOnTerminate는 스레드가 죽을때 메모리에서 삭제하라 이런 말이죠
그럼 이해가 되셨남요? ^^;
이창환 님이 쓰신 글 :
: TThread를 상속 받아서 class를 만들었습니다.
:
: 메인 폼에 만든 Thread를 동적할당해서 생성하고
:
: 마지막에 메인 폼이 닫힐 경우 delete로 객체를 해지 하였습니다.
:
: 그렇게 했더니 마지막에 에러가 나더군여.
:
: Free()라는 함수를 사용해도 에러가 납니다.
:
: 만든 Thead객체의 소멸자에 delete this를 해도 에러가 나고..
:
: delete를 안하면 에러는 나지 않습니다.
:
: delete를 하지 않으면 메모리 누수가 일어 날 것 같은데
:
: 쓰레드의 execute()함수가 하는일은
:
: while(true)
: {
: 라인을 폼에 그리는 동작
: }
:
: 입니다.
:
: 언제 이 객체를 delete해주어야 하는지 알려 주세여...
:
: 그리고 폼이 늦게 사라집니다.
:
: 아마도 객체가 없어지지 않아서 그런 것 같은데여.
:
: 폼을 닫으면 한참 화면에서 사라지지 않고 멈춰 있다가 사라집니다.
:
: 그럼...
|