-

thread Class 사용 방법

 

Visual Studio 2012 에서는 이번 C++ 11 표준에서 thread 부분까지 적용이 되어

 

다음과 같이 Class 의 멤버 함수를 Thread 로 돌릴 수 있다.

#include 
#include 
#include 
#include 

using namespace std;


class Test
{
public:
	Test()
	{
		m_nNum = 0;
	}
	virtual ~Test()
	{
		printf("~Test\n");
	};
public:
	void ThreadFunc()
	{
		while(1)
		{
			printf("Num1 : %d\n", m_nNum);
			Sleep(1000);
			m_nNum++;

			if(m_nNum == 10)	break;
		}
	}

	void operator() ()
	{
		printf("Exit Thread");
	}
	void AddNum()
	{
		m_nNum++;
		printf("Call AddNum Func\n");
	}

private:
	int m_nNum;
};

int main()
{
	Test t;	
	thread th(&Test::ThreadFunc, &t);
	
	Sleep(1000);	
	t.AddNum();
	th.join();

	return 0;
}

Visual Studio 2012 가 있다면 한번 컴파일 해서 실행 시켜보면 될듯..?

저작자 표시 비영리 변경 금지
신고

다른 카테고리의 글 목록

Programming/C/C++ 카테고리의 포스트 목록