SetWindowText(str);//编辑框显示CSingleLocksinglelock(&mySemaphore);//创建CSingleLock类对象singlelock.Lock();//计数器初始值减1MessageBox(NULL,"信号量控制访问资源线程数","提示",MB_ICONWARNING);//弹出对话框thread--;//线程数目减1str.Format("%d",thread);pedit->SetWindowText(str);//编辑框显示return0;}-IMDN开发者社群-imdn.cn"> SetWindowText(str);//编辑框显示CSingleLocksinglelock(&mySemaphore);//创建CSingleLock类对象singlelock.Lock();//计数器初始值减1MessageBox(NULL,"信号量控制访问资源线程数","提示",MB_ICONWARNING);//弹出对话框thread--;//线程数目减1str.Format("%d",thread);pedit->SetWindowText(str);//编辑框显示return0;} - IMDN开发者社群-imdn.cn">
登录
首页 » VC++源码 » VC6.0 使用信号量Semaphore实现线程的同步

VC6.0 使用信号量Semaphore实现线程的同步

于 2022-02-20 发布 文件大小:13.88 kB
0 266
下载积分: 2 下载次数: 1

代码说明:

VC6.0 使用信号量Semaphore实现线程的同步,使用信号量实现线程同步,设置访问保护对象的最多线程数为2,确定当前已经启动运行的线程数目,可以创建线程。   CWinThread* pThread=AfxBeginThread(ThreadProc,&m_Edit);//开辟一个工作线程,   int thread=0;//全局变量记录当前运行线程的数目   CSemaphore mySemaphore(2,2);//创建CSemaphore类对象   UINT ThreadProc(LPVOID pParam)//工作线程入口函数   {    CEdit *pedit=(CEdit*)pParam;    CString str;    thread++;//线程数目加1    str.Format("%d",thread);    pedit->SetWindowText(str);//编辑框显示    CSingleLock singlelock(&mySemaphore);//创建CSingleLock类对象    singlelock.Lock();//计数器初始值减1    MessageBox(NULL,"信号量控制访问资源线程数","提示",MB_ICONWARNING);//弹出对话框    thread--;//线程数目减1    str.Format("%d",thread);    pedit->SetWindowText(str);//编辑框显示    return 0;   }

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • VC++6.0实现ListCtrl列表控件拖放、整栏选择和显示网格
    VC++6.0实现列表控件的扩展风格——拖放、整栏选择和显示网格等功能,通过这个源代码你可以熟悉VC中的ListCtrl列表控件的多种用法,运行效果如示例截图所示,部分代码如下:   DWORD liststyle=m_ctlList.GetExtendedStyle();//获取列表控件的扩展风格m_ctlList.SetExtendedStyle(liststyle|LVS_EX_HEADERDRAGDROP|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//设置列表控件的新扩展风格   m_pImageList.Create(16, 16, ILC_COLOR, 2, 2);//创建图像列表   CBitmap bm;   bm.LoadBitmap(IDB_BITMAP1);//载入Bitmap资源   m_pImageList.Add(&bm, RGB(0, 0, 0));//添加到图像列表   bm.DeleteObject();   bm.LoadBitmap(IDB_BITMAP2);   m_pImageList.Add(&bm, RGB(0, 0, 0));   //初始化列表视   m_ctlList.SetImageList(&m_pImageList,LVSIL_SMALL);//设置ImageList   CString Field[2]={"性别","姓名"};//列表视的表头   for(int j=0;j
    2023-02-22 08:35:03下载
    积分:1
  • VC++ CFileException异常处理用法范例
    VC++ CFileException异常处理用法范例,   catch(CFileException* e)   {    switch(e->m_cause)    {    case CFileException::fileNotFound:    {    strMessage.Format("打开文件时发生异常(try/catch):    在指定位置没有找到文件%s ",strFile);    AfxMessageBox(strMessage);    TRACE("即将删除捕获到的异常对象CFileException::fileNotFound ");    AfxMessageBox("即将删除捕获到的异常对象CFileException::fileNotFound");    //删除异常对象    e->Delete();    TRACE("成功删除捕获到的异常对象CFileException::fileNotFound ");    AfxMessageBox("成功删除捕获到的异常对象CFileException::fileNotFound");    break;    }    case CFileException::invalidFile:    {    strMessage.Format("打开文件时发生异常(try/catch):    文件%无效 ",strFile);    AfxMessageBox(strMessage);    TRACE("即将删除捕获到的异常对象CFileException::invalidFile ");    AfxMessageBox("即将删除捕获到的异常对象CFileException::invalidFile");    //删除异常对象    e->Delete();    TRACE("成功删除捕获到的异常对象CFileException::invalidFile ");    AfxMessageBox("成功删除捕获到的异常对象CFileException::invalidFile");    break;    }    default:    break;    }   }
    2022-01-26 02:02:12下载
    积分:1
  • 兼容64位的VC++ 音乐播放器 带进度条
    这是一个比较早的VC++播放器源码,兼容64位的VC++ 音乐播放器 带进度条和音量控制拖动条,同时还有几个常用的播放控制按钮,暂停、播放、打开文件、快进等,这个播放窗口可以随拖动大小而自动变化。运行效果如上图所示,源代码来自国外网站,注释全是英文英文的。
    2022-01-25 16:55:52下载
    积分:1
  • 修改Windows IE的主页:VC++编写的程序
    VC++编写源码实现修改IE浏览器的主页,这个现在已经不是什么新鲜功能了,现在好像有360在干扰用户自定义主页,唉,360好流氓哦,本程序实现的修改IE主页,同样会被360拦截,因此测试前请关掉360哦。   本程序通过修改注册表的方式来修改IE主页,这种方式是惯用的一种方法。
    2022-04-25 09:53:44下载
    积分:1
  • VC++ 获取IE运行实例的标题,并修改其标题
    VC++ 获取IE运行实例的标题,并修改其标题,大致的实现步骤:设置列表控件的风格、创建COM变量的实例、获取当前正在运行的所有IE窗口的标题信息,刷新列表控件、释放IE实例对象、获得第i个ie实例、获得文档对象、获得文档标题、将IE标题填充到列表框、用户选择指定的IE标题项,然后设定ie标题、销毁窗口时,清除com环境、清除所有com对象。
    2022-03-31 12:59:54下载
    积分:1
  • VC++ 音乐播放器
    VC++ 音乐播放器 例子,支持播放列表 ,支持常规的播放控制,自制了界面,从这个播放器软件中,你可以学习到软件界面方面的编写技巧以及音乐播放方面的技巧,运行效果如下图所示。本源码对学习VC++软件编程有很好的借鉴作用。
    2022-05-20 10:54:09下载
    积分:1
  • VC++ 6.0 定制分割条(分隔条)的样式及大小
    VC++ 6.0 定制分割条,也就是窗体的分隔条,将窗口分隔成若干个部分,用来显示不同的内容,该窗格视图为CStaticSplitWnd4View,该窗格大小不能通过拖动改变,不过我们可以通过菜单命令动态改变大小,窗格视图为CView2,该窗格大小不能通过拖动改变,窗格视图CView3和CView4都可以通过分隔条的拖动来改变视图大校   本示例中的分隔条经过了初级的美化,而且也向用户展示了,如何通过分割条来固定分栏窗格视图的大小,如何让分隔条不支持拖动等功能。
    2023-08-22 18:20:04下载
    积分:1
  • VC++ 图书管理系统含 SQLSERVER数据库
    一套完整的VC++ 图书管理系统源码,含 SQLSERVER数据库,数据库在database目录下,测试前请附加并连接好。源代码在源程序目录内,很完整,可在VC++6.0环境下顺利编译。运行效果如下图所示。   本套图书管理系统功能主要有:基本信息、图片管理、库存管理、查询管理、系统管理、系统登录、口令管理、系统人员管理等。每一个模块下都有很多子模块,界面设计也是很符合用户习惯的。
    2023-09-07 13:35:03下载
    积分:1
  • VC++ OpenGL粒子系统之火山喷发
    VC++ 带音效的OpenGL粒子系统之火山喷发,作者:蔡真真 张田田。选择运行参数后,在音效的配合下,很逼真的火山喷发效果展现在眼帘。程序中为每个动态元素都制作了操作类,比如键盘类和程序框架类 、粒子系统火山喷发类、字体类、载入位图类、粒子定义类、粒子系统喷发具体实例类,粒子系统火山喷发模式选择对话框类等,这些类的共同发力,实现了逼真的火山喷发效果,当然你的电脑中需要安装有OpenGL组件,在预览效果时,可选择窗口大小以及全屏、音效等。   在具体实例类中,完成了核心的火山叶喷发功能,比如计算帧速、输出文字信息、绘制地面、绘制天空、绘制背景、初始化粒子、更新粒子等操作。当然,粒子定义类也是一个很主要的操作类。
    2023-02-15 21:10:04下载
    积分:1
  • VC++ 使用WinInet通过HTTP协议读取网上文件
    VC++ 6.0 使用WinInet通过HTTP协议读取网上文件   在一个按钮事件中定义了网络连接Session:   CInternetSession httpsession;//定义网络连接Session   CString Line;   CInternetFile* webfile=NULL;//定义一个文件对象指针   UpdateData();   if(m_Url.Left(7)!="http://")//如果地址不含HTTP类型标志则添加本地文件类型标志   读出文件前一部分,如果文件多于80行,三示例中只显示前80行.然后更新显示文件:   UpdateData(FALSE);//更新显示文件   delete webfile;//删除文件   GetDlgItem (IDC_SHOW)->EnableWindow (FALSE);//禁用显示按钮   httpsession.Close();//关闭连接
    2023-09-07 18:35:03下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载