1주만에 정리해서 올린다..... 그것도 그냥 한걸로.....
첫번째 예제는 간단하게 쓰래드 하나를 만들어서 구구단을 출력하는 예제이다.
먼저 해더파일 선언이다. 머 다른건 없지만 process.h 가 추가 되었다.
이 해더파일에 사용할 쓰래드와 프로세스 작업에 쓰이는 함수의 정의와 매크로가 포함되어 있다.
다음은 MyThread 함수다. 이름과 같이 쓰래드로 사용 할 것이며 인자가 int* 형으로 있다. 기본은 void* 형이지만 이거에 대해서는 따로 다른글에서 정리하겠다. 이 인자를 이용하여 구구단이 몇단인지를 전달 해 줄 것이다.
다음으로 Main이다.
여기서 9개의 핸들을 배열로 만들어 사용한다. ( 이는 WaitForMultipleObjucts를 유용하게 쓸 수 있게 해준다.)
Main에서 가장 중요한 것은 _beginthreadex함수 이다. 이 함수를 통해 쓰래드를 생성하며 4번째 인자를 통해서 인자를 넘겨준다.
자세한 설명은 따로 정리하겠다.
WaitForMultipleObjucts 함수는 배열로 묶인 쓰래드들을 한번에 기다리세 설정 할 수 있다.
다음으로는 쓰래드에 구조에를 넘겨주는 실습이다. 위에서 언급한것은 생락한다.
해더파일은 위에서와 동일하고 locale.h 만 추가 되었다. 한글 사용을 위해 추가 하였다.
다음으로는 구조체이다. 앞에서는 int*형을 인자로 넘겨주었고 이번에는 struct*를 넘겨 줄 것이다.
이것이 가능한 이유는 실제로 데이터형 정의가 void*로 되어있기 때문이다.
다음으로는 생성 할 쓰래드이다. 구조체의 id 값을 통해서 홀, 짝값을 나누었다. (물론 다른 방법도 있다.)
여기서도 전체 사용함수는 동일하다. 다만 _beginthreadex의 4번째 인자가 이번에는 구조체인것을 확인 할 수있다.
예제....
'Programming > Windows&C#' 카테고리의 다른 글
[Windows/WinAPI] 자식 프로세스를 만들고 값을 리턴받음 (2) | 2013.11.16 |
---|---|
[Windows/WinAPI] _beginthread, _beginthreadex (0) | 2013.11.14 |
[Windows/WinAPI] GetCurrentProcess, GetCurrentProcessId, ResumeThread, WaitForSingleObject (0) | 2013.10.25 |
[Windows/WinAPI] CreateProcess (0) | 2013.10.25 |
[Windows/WinAPI] LoadLibrary, GetProcAddress, FreeLibrary (0) | 2013.10.25 |