가르침 감사드립니다. 더 공부하겠습니다.
소프트테크 님이 쓰신 글 :
: 쓰레드에서 SendMessage를 사용하는 경우 오류 발생이 정상입니다.
: 스레드에서는 PostMessage를 사용하도록 되어있습니다.
: 상기의 내용은 데이터를 전달하는데에는 쓰레드의 이론적인 한계가 있음을 뜻 합니다.
: SendMessage는 동기 호출이므로 프로세스 간에는 사용가능하나 쓰레드간에는 문제가 있습니다.
: PostMessage는 메시지큐에 담아두는 것으로서, 할당된 데이터 포인터의 메모리가 유지되어야 합니다.
: 결국은 내부 전역 변수 또는 사용자 메시지에 의한 동기 호출이 필요하게 됩니다.
: 쓰레드가 전달 할 것이 있다는 변수 또는 메시지를 사용하고, 메시지가 처리되었다는 변수를 확인한 후에
: 쓰레드는 다음 로직으로 이동되어야 되지요.
: 이런 것을 잘 하도록 스레드를 돕는 함수가 이벤트 함수로서, 쓰레드에서 이벤트를 생성하고,
: 이벤트가 완료되는 것을 대기하는 WaitObject가 있습니다. 참조 바랍니다.
:
: 김초보 님이 쓰신 글 :
: : 실행중인 쓰레드에서 포인트 구조체에 메모리를 할당한 후SendMessage를 이용해 MainForm으로 전달하려 합니다.
: : 이 때 쓰레드에서 할당 된 메모리를 MainForm에서 메모리 해제를 해도 상관이 없는지 궁금합니다.
: :
: : 한가지 더 질문 사항!! 다른 프로그램과 윈도우메시지를 주고받고픈데 그럴려면 상대 프로그램의 윈도우 핸들 정보를
: : 알아야 할텐데 그걸 어떻게 주고 받나요?
: : 일단 제 생각에는 임시 텍스트 파일에 핸들정보를 입력해서 공유하거나 해당 프로그램을 실행 파라메터로 넘겨준다던지
: : 방법밖에 생각이 나지 않는데 다른 깔끔한 방법은 어떤것 들이 있을까요?
: : 그리고 델파이에서 프로그램을 실행할 때 파라메타를 받아서 실행하는 방법도 궁금합니다.
|