Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40177
  • 博文数量: 32
  • 博客积分: 1326
  • 博客等级: 中尉
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-25 18:13
文章分类

全部博文(32)

文章存档

2010年(32)

我的朋友
最近访客

分类: WINDOWS

2010-06-26 00:12:17

#include "stdafx.h"
#include <afxwin.h>
#include <windows.h>

HANDLE hSemaphore;

UINT ThreadProcFirst(LPVOID pParam);
UINT ThreadProcSecond(LPVOID pParam);
UINT ThreadProcThird(LPVOID pParam);

int main(int argc, char* argv[])
{
    hSemaphore = CreateSemaphore(NULL, 2, 2, NULL);
    AfxBeginThread(ThreadProcFirst, NULL);
    AfxBeginThread(ThreadProcSecond, NULL);
    AfxBeginThread(ThreadProcThird, NULL);
    
    /*延迟进程退出*/
    Sleep(5*1000);
//     CloseHandle(hSemaphore);

    return 0;
}

UINT ThreadProcFirst( LPVOID pParam )
{
    WaitForSingleObject(hSemaphore, INFINITE);
    AfxMessageBox("First");
    ReleaseSemaphore(hSemaphore, 1, NULL);
    return 0;
}

UINT ThreadProcSecond( LPVOID pParam )
{
    WaitForSingleObject(hSemaphore, INFINITE);
    AfxMessageBox("Second");
    ReleaseSemaphore(hSemaphore, 1, NULL);
    return 0;
}

UINT ThreadProcThird( LPVOID pParam )
{
    WaitForSingleObject(hSemaphore, INFINITE);
    AfxMessageBox("Third");
    ReleaseSemaphore(hSemaphore, 1, NULL);
    return 0;
}


阅读(340) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~