|
안녕하세요 수야님
이런 방법도 있습니다.
Project에 보면 TThread를 가지고 사용할 수 있습니다.
이는 User Interface Thread로 사용자가 넘기고자 하는 내용을
Parameter로 Thread에 넘길 수 있는 것이지요.
제가 Thread에 대한 질문에 대해서 많은 답변을 드린 내용 중에
번호 12353, 2001/11/05일자에 올린 내용에 Sample이 있습니다.
이것을 참조하시면 도움이 되지 않을 까 생각 되네요...
중국 출장중에 bcbdn에 어떠한 내용이 있나 매일 한번씨 Internet접속을 하여
알고 있는 내용이면 이렇게 답변을 드립니다.
답변자료 :12353에 있는 Sample File을 올리니 참조하세요...
수야 님이 쓰신 글 :
: 답변감사드립니다.
:
: 그 방법은 알고있었던거같은데 어느덧 까먹었군요 ㅋㅋ
:
: 그 방법엔 문제가 있어 더 좋은 방법을 찾고있었습니다.
:
: 상기시켜주신것에대해 감사드리구요~
:
: 좀더 좋은 방법 없을까요?
:
: 좀더 멋진 코딩이 있을거같은데 말이죠 ^^
:
: 수고하세요~(감사~)
:
: 정남영 님이 쓰신 글 :
: : 안녕하세요 수야님...
: :
: : 질문에 맞는 답변인지 모르겠지만.. 암튼 답변을 올리자면
: : 수야님께서 말씀하신 클래스를 전역변수로 선언을 하고 쓰면 별 문제가
: : 없을듯 하네요..
: :
: : 쓰레드는 해당 프로세스내에서 사용하는 메모리의 영역을 사용하니까
: : 전역으로 사용하시면 별 문제가 없을듯 하네요..
: :
: : 물론 동기화 부분 신경써주셔야 되구요..
: :
: : 만약 전역으로 사용하기 좀 껄끄럽다면 쓰레드 호출할때 사용하는 파라메터를
: : 쓰레드에서 필요한 모든 정보들을 가진 구조체의 포인터를 직접 넘겨서
: : 사용하시면 됩니다.
: :
: : 이를테면
: :
: : struct ThreadParameter
: : {
: : Babo *BaboInstance;
: : SOCKET Socket_;
: : };
: :
: : 이 구조체의 포인터를 쓰레드 파라메터로 넘기고
: : 쓰레드 내에서 다시 Type-Casting해서 사용하시면 됩니다.
: :
: : 그럼 수고하세요~
: :
: : 수야 님이 쓰신 글 :
: : : 안녕하세요.
: : :
: : : 꼼지락.수야입니다.(오옷! 디게 오랜만에 질문이네여)
: : :
: : : 클래스를 하나 만들었지요..
: : :
: : : 그 클래스에서 쓰래드가 동작을 하는데요
: : :
: : : 문제가 생겼습니다.
: : :
: : : 클래스내의 변수를 쓰래드내에서 감지를 해야하는데..
: : :
: : : 도통 방법을 모르겠네요?
: : :
: : : DWORD WINAPI AcceptThread(void *socket_)
: : : {
: : : SOCKET AcceptSocket = (SOCKET)socket_;
: : : int len;
: : :
: : : len = sizeof(AcceptSocket);
: : :
: : : client = accept(server, (struct sockaddr FAR *)&AcceptSocket, (int FAR *)&len);
: : : }
: : :
: : : 클래스 이름이 "바보"라 가정한다면 어떻게 사용해야되나요?
: : :
: : : 쓰래드 내의 인자값이 바뀌어도 상관은 없습니다.
: : :
: : : 바보클래스 안의 client나 server을 모두 사용해야하거든요
: : :
: : : 쓰래드 인자값은 하나뿌니 못넘기구 ㅡㅡㅋ
: : :
: : : 또 리턴해버리면 쓰래드가 종료가 되버려서 ㅡㅡ
: : :
: : : 질문이 이상한가요?
: : :
: : : 이상하면 다시 올리겠습니다. 답변주세요~ ^^
|