[C] Critical Section

크리티컬 세션을 이용해서를 사용해서 1초를 구하는 것.!
#include "stdafx.h"
#include  //windows.h header
#include 
#include 

DWORD WINAPI MyThread(LPVOID temp);
CRITICAL_SECTION g_CriticalSection; //우선 크리티컨 세션을 설정후에... 전역변수

int main(int argc, char* argv[])
{

                  DWORD dwMyThreadID;
                  HANDLE lThread;
                  DWORD dwStart;
                  int nCnt = 10;

                  InitializeCriticalSection(&g_CriticalSection);//  초기화해주고
                  lThread = CreateThread(NULL, 0, MyThread, NULL, 0, &dwMyThreadID);


                  while(true)
                  {
                                   dwStart = GetTickCount(); //현재시간을 구하자
                                   //타이머 딜레이 주기
                                   while(GetTickCount() - dwStart < 1000);
                                   printf("\r\n 1초마다 실행됩니다.");
                  }
                  return 0;
}

DWORD WINAPI MyThread(LPVOID temp)
{    
  int tmp_t ;
  int kkk;

 while(true)
 {
 // dwStart = GetTickCount();
                  tmp_t = clock();
                  kkk = tmp_t + 2500;
  //2초당한번 출력한다
                  while( tmp_t <= kkk ){
                                   tmp_t = clock();
                  }
                                   EnterCriticalSection(&g_CriticalSection);
                                   printf("\r\n 2.5초마다 실행됩니다.");
                                   LeaveCriticalSection(&g_CriticalSection);//  크리티컬세션 작업 종료
                  }
}

'Library > winsock' 카테고리의 다른 글

[C] 소켓으로 웹 연결하기  (0) 2010.01.23
DisplayText() 함수  (0) 2009.07.14
TCP_Server, TCP_Client (API 모드)  (0) 2008.03.01
UDP_EventSelectServer,UDP_EventSelectClient  (0) 2008.02.29

댓글

Designed by JB FACTORY