|
TStringList로 선언된 객체에 값을 입력하는 부분을
TThread의 Synchronize 함수를 사용해서 돌아가도록 해주시면 해결되지 않을까 합니다.
Synchronize 함수를 쓰면 그 안에서 돌아가는 작업은 프로그램의 메인쓰레드를 사용하여 작업이 되기때문에
메인쓰레드의 다른 작업과 겹치지 않게됩니다.
쓰레드에서 TStringList 객체를 업데이트 하는 중에 메인폼에서는 삭제를 하려고 하여 겹치게되어
오류가 발생할 수 있을 것 같네요.
P.S. 프로그램을 작성하고 오류를 수정하고 하는 것들을 하셔서 잘 아시겠지만..
구체적인 오류 메시지와 발생 상황(가끔 발생한다던가 어떤 특정 상황에서 발생을 한다던가...등등)
을 말씀해주시면 더 금방 잘 맞는 답변을 얻으실 수 있을 것 같네요^^
정확히 어떤 오류가 어떻게 나오는지는 잘 모르기 때문에 제가 답변 드린 내용이 맞지는 않을 수도 있으니..
그냥 참고하세요~~^^;;;
비틀 님이 쓰신 글 :
: 스레드에서 로그를 찍는데 오류가 발생합니다.
: 메인폼에 TStringList를 선언하고.. 스레드 상에서 TStringList 에 로그를 입력하는데요..
: 메인 폼에서는 타이머를 주어서
: TStringList 의 item->Count 만큼 돌면서
: TMemo에 로그를 쓰고 하나씩 삭제를 하는데요...
: 스레드에 로그가 많아서 그런지 delete(0)할때 에러가 발생하는거 같거든요??
: 혹시 방법이 없을 까요??
: 고수님들 부탁드립니다.
|