메뉴 건너뛰기

OBG

Programming

API/MFC
2013.07.28 02:58

스레드(CreateThread), EVENT 동기화

MoA
조회 수 614 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Thread 출처 : http://wory.tistory.com/166

Event 동기화 출처 : http://blog.naver.com/drrich/20054322126


#include <Windows.h>
#include <stdio.h> 
#include <conio.h> 

// HANDLE 
HANDLE event = NULL; 

// Thread_Func 
DWORD WINAPI Thread_Func(PVOID vparam) 

    int* state = (int*)vparam; 
    int count = 0; 
    while ((*state)) { 
        // 신호 대기 
        WaitForSingleObject(event, INFINITE); 
        // 진행 
        printf("Thread_Func : %dn", count); 
        count++; 
        // 스레드 종료 신호 
        SetEvent(event); 
        Sleep(100); 
    } 
    (*state) = 2; 
    return 0; 


// main 
int main() 

    HANDLE    thread = NULL; 
    int        state  = 1; 
    // 이벤트 생성 
    event = CreateEvent(NULL, 0, 0, NULL); 
    SetEvent(event); 
    // 스레드 생성 
    DWORD id; 
    thread = CreateThread(NULL, 0, &Thread_Func, &state, 0, &id); 
    // 메인 루프 
    while (1) { 
        // 신호 대기 
        WaitForSingleObject(event, INFINITE); 
        // 진행 
        printf("main...n"); 
        // 종료 
        if (_kbhit() && getch()=='p') { 
            state=0; 
        } 
        if (state==2) break; 
        // 스레드 종료 신호 
        SetEvent(event); 
        Sleep(100); 
    } 
    // 스레드 강제 종료 
    if (state==1) TerminateThread(thread, 0); 
    // 이벤트 종료 
    SetEvent(event); 
    CloseHandle(event); 
}


http://blog.naver.com/cor2738/150111130866

?

  1. Programming 게시판 관련

  2. 다른 스레드에서 메인다이얼로그 포인터 받아오기 AfxGetMainWnd()

  3. char*, String, CString

  4. CreateThread, ExitThread, GetExitCodeThread ...

  5. Thread와 SendMessage를 통해 DeadLock을 만드는 방법

  6. 작업자 스레드(Worker Thread) 와 사용자 인터페이스 스레드(User Interface Thread)

  7. WaitForSingleObject와의 삽질..

  8. 스레드(CreateThread), EVENT 동기화

  9. 스레드 강좌 + CreateThread() 와 _beginthreadex() 함수의 차이

  10. 비주얼 스튜디오 2005 단축키

  11. VC의 소스 파일, sln파일 관리

  12. 비베의 MSCOMM.OCX VC++에서 불러쓰기

  13. VC++6.0 에서 VC++ 2005로 변환할 경우 형변환 경고 대응방법

  14. MFC기반의 CSocket 사용 방법과 예제

  15. Sleep() 함수 대신 프로그램 딜레이 시키기 (Wait)

  16. 후킹 링크

  17. 모달창 세팅값 저장

  18. DoModal Dialog 기초

  19. #pragma

  20. MFC TIP

  21. CString class

Board Pagination Prev 1 2 3 ... 4 Next
/ 4
위로