|
프로그램 작성중 여러가지 문제가 발생.. 몇가지 질문.
thread 클래스를 상속받아서 작업용 클래스를 만들고
Execute 에서 쓰레드가 실행된다 는 것은 이해 했는데..
이런 쓰레드 4개 정도 만들어서 돌리고 있는데
디버깅 포인터를 걸면 컴파일러가 멈추는 현상이 있습니다.
아마 동기화 때문에 그런거 같은데
지금 동기화 처리 한것.
쓰레드에서 UI을 건들면 안된다 -> 메세지 로 처리해서 메인폼으로 메세지를 보내고 있습니다.
1) 쓰레드에서 다른 쓰레드의 멤버 변수를 알고 싶은 경우도 메세지로 처리해야 되냐요 ?
지금은 그냥 읽어 옴.
그런대 위의 작업용 클래스에 멤버 함수와 멤버 변수를 다른 폼이나 참조 실행하면
문제가 되는 같습니다 .
클래스가 디버깅 포인트로 멈추면 다른 곳에서 그 쓰래드의 변수를 참조 하려할때.
같이 대기 하면서 문제가 되는 같은데 ?
궁금한것은..
Execute 함수 실행 하는 곳에서는 다른 쓰레드 함수의 멤버 함수나 멤버 변수를 참조
읽어 오는 것도 안되는 것인가요 ?
또 Execute 에서 실행되지 않는 함수나 변수도 참조 하면 안되는 것인가요 ?
동기화라는 것이 변수를 변경할때 문제가 되는 것안가요 ?
지금 현상을 보면 쓰레드에서 동시 실행되는 로직만 넣어 두고
변수나 참고 해야 하는 값은 다른 곳에서 처리하고 쓰레드에 어떤 값을 전달 하려면 전부 메세지로 처리해야
한다는 결론 ?
쓰레드에 대해서 아는 것이 별로 없으니 ..이런 문제가 ...
혹시 참고 할만한 서적은 ?
혹시 아시분 ?
|