|
안녕하세요 수야님...
질문에 맞는 답변인지 모르겠지만.. 암튼 답변을 올리자면
수야님께서 말씀하신 클래스를 전역변수로 선언을 하고 쓰면 별 문제가
없을듯 하네요..
쓰레드는 해당 프로세스내에서 사용하는 메모리의 영역을 사용하니까
전역으로 사용하시면 별 문제가 없을듯 하네요..
물론 동기화 부분 신경써주셔야 되구요..
만약 전역으로 사용하기 좀 껄끄럽다면 쓰레드 호출할때 사용하는 파라메터를
쓰레드에서 필요한 모든 정보들을 가진 구조체의 포인터를 직접 넘겨서
사용하시면 됩니다.
이를테면
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을 모두 사용해야하거든요
:
: 쓰래드 인자값은 하나뿌니 못넘기구 ㅡㅡㅋ
:
: 또 리턴해버리면 쓰래드가 종료가 되버려서 ㅡㅡ
:
: 질문이 이상한가요?
:
: 이상하면 다시 올리겠습니다. 답변주세요~ ^^
|