EnableWindow(true);//启动按钮生效GetDlgItem(IDC_STOPR)->EnableWindow(false);//停止按钮无效-IMDN开发者社群-imdn.cn"> EnableWindow(true);//启动按钮生效GetDlgItem(IDC_STOPR)->EnableWindow(false);//停止按钮无效 - IMDN开发者社群-imdn.cn">
登录
首页 » VC++源码 » VC++ 使用互斥对象(Mutex)实现线程同步

VC++ 使用互斥对象(Mutex)实现线程同步

于 2022-04-11 发布 文件大小:21.01 kB
0 244
下载积分: 2 下载次数: 1

代码说明:

VC++ 使用互斥对象(Mutex)实现线程同步,使用临界区对象实现读、写线程的同步,通过一个写线程和读线程的实例,来演示Mutex实现的线程同步功能。用完后销毁读线程,如下示:   CSingleLock singleLock(&mutex);   singleLock.Lock();   TerminateThread(g_ReadHnd, 0);//终止读线程   singleLock.Unlock();//释放资源   m_ReadEdit.SetWindowText("终止读线程");   GetDlgItem(IDC_STARR)->EnableWindow(true);//启动按钮生效   GetDlgItem(IDC_STOPR)->EnableWindow(false);//停止按钮无效

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

发表评论

0 个回复

  • VC 结合定时器隐藏进程一定时间
    VC++ 隐藏进程,这个例子结合了计时器来实现,不是永久隐藏,是隐藏进程一定时间,根据定时器返回的时间,重新显示进程。   要实现这个过程,可编写以下代码:   LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;   //加载RegisterServiceProcess函数所在的链接库   hDLL = LoadLibrary("KERNEL32");   //得到RegisterServiceProcess函数的地址   lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL, "RegisterServiceProcess");   //执行RegisterServiceProcess函数,在任务列表中隐藏程序   lpRegisterServiceProcess(GetCurrentProcessId(),1);   //卸载链接库   FreeLibrary(hDLL);   //设定定时器   SetTimer(0,m_nSeconds*1000,NULL);   //隐藏程序的同时,隐藏窗口   ShowWindow(SW_HIDE);   后续会卸载链接库,请下载源码查看源代码文件。
    2022-04-17 12:20:46下载
    积分:1
  • VC++ 实现对软件的简单加密(注册)功能
    VC++ 实现对软件的简单加密,本程序是通过C盘序列号来加密文件,实现软件的注册功能,软件号和C盘序列号同时正确才可验证,而C盘的序列号是唯一的,获得c盘序列号的代码如下:   DWORD VolumeSerialNumber;   GetVolumeInformation("c:",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10);   VolumeSerialNumber^=0x12345678;//本机c盘序列号简单运算   m_usernum=VolumeSerialNumber;   UpdateData(false);   然后通过序列的判断,来验证加密是否正确,比如下边的代码来做加密验证:   UpdateData(true);   DWORD num;   num=m_usernum;   num^=0x1999aa98+12;//加密算法   if(!(num==m_serialnum))   {    AfxMessageBox("输入的序列号不正确!");    return;   }
    2022-11-07 22:05:03下载
    积分:1
  • VC++ 6.0 定时执行任务(关机、重启等)编写实例
    VC++ 6.0 定时执行任务编写实例,程序运行时显示托盘图标和右键菜单,请设置好时间和需要执行的外部文件路径及文件名,默认情况下是执行外部任务,可选择执行关机、重启、注销等任务,然后启动定时程序,在仅剩1分钟时,程序会显示自动重启警告:计算机将于1分钟内重启,是否取消重启?按"是"则取消自动重启.若允许自动关闭,请保存尚未关闭的程序!"。   本定时程序时间的设置可精确到日期、时间、秒,编写步骤:   ①设置任务执行的日期时间.   ②选择关机,注销,重启,任务模式.   ③选择了任务模式,需要设置任务路径.   ④按下"启动定时"按钮.   ⑤关机前1分钟不段提示是否关机或重启,如果用户一直未取消,电脑将于1分钟内关机或重启.有如下代码可参考:   if(shutTime < CTime::GetCurrentTime())   {    MessageBox("设置的时间不能早于当前系统时间!");   }   else   {    CString bb;    cButton->GetWindowText(bb);    if(bb == "启动定时")    {    if(radio == 1)    {    MessageBox("定时关机已启动!","定时关机已启动");    }    else if(radio == 2)    {    MessageBox("定时注销已启动!","定时注销已启动");    }    else if(radio == 3)    {    MessageBox("定时重启已启动!","定时重启已启动");    }else if(radio == 4)    {    CString command = "";    GetDlgItemText(IDC_EDIT2,command);    if(command == "")    {    MessageBox("请选择要执行的文件!");    return ;    }else    {    MessageBox("定时任务已启动!","定时任务已启动");    }    }    SetTimer(1,1000,0);    AfxGetApp()->m_pM
    2022-10-17 12:35:03下载
    积分:1
  • VC++ 调用 windows 字体、打印、调色板等对话框示例
    VC++ 调用 windows 字体、打英调色板、搜索、替换、保存、颜色、页面设置、打印设置、打开等常用对话框窗口示例,这些对话框也可以在控制面板中打开,主要是VC++与调用Windows相关模块相关的一个程序示例,有助于了解与windows编程的相关技巧。
    2022-03-24 00:23:54下载
    积分:1
  • VC++ 6.0 实现选中项缩进的列表框
    VC++ 6.0 实现选中项缩进的列表框,选中列表项后,该项缩进,文本显示为红色,自定义列表框控件,注意观察选中后的特性,重载控件的DrawItem函数。下面来看实现这一功能的代码段:   dc.Attach(lpDrawItemStruct->hDC);//获取列表框的DC   CRect rect(lpDrawItemStruct->rcItem);//获取列表框的矩形区域   COLORREF bk = dc.GetBkColor();//背景颜色   COLORREF fg = dc.GetTextColor();//系统文本颜色   if(lpDrawItemStruct->itemState & ODS_SELECTED)//该项被选中   {    bk = RGB(180,180,0 );//背景颜色    fg = RGB(255,0,0 );//红色文本   }   dc.SetTextColor(fg);   CBrush brush(bk);   dc.FillRect(&rect,&brush);   if (lpDrawItemStruct->itemState&ODS_SELECTED)   rect.left +=25;//缩进25个象素   int nBkMode = dc.SetBkMode( TRANSPARENT );   CString str;   GetText(lpDrawItemStruct->itemID,str) ;   dc.DrawText(str, &rect, DT_LEFT|DT_VCENTER);//显示文本   dc.SetTextColor(fg);   dc.SetBkMode( nBkMode );   dc.Detach() ;
    2022-06-13 09:32:23下载
    积分:1
  • VC 扫描仪控制程序
    这是一个在VC++环境下实现的扫描仪扫描管理程序,用于启动扫描和停止扫描,只是实现基本的扫描仪控制,不过本程序的顺利运行需要扫描仪支持,且是指定型号,窗口中对应的功能,由下面的按钮事件来响应:   开始扫描:   void CScanManageDlg::OnButton1()   {    m_Scan.ScannerAvailable();    m_Scan.OpenScanner();    m_Scan.StartScan();   }   停止扫描:   void CScanManageDlg::OnButton2()   {    m_Scan.StopScan();   }
    2022-05-27 18:23:01下载
    积分:1
  • 华南理工大VC++ 实验报告:学生信息管理系统 附文档
    华南理工大软件学院2016级VC++ 实验报告:学生信息管理系统 附文档,这套系统的功能分为两部分,学生部分和教务管理员部分。包括系统功能模块划分;类体系设计,即主要数据和函数功能描述;界面设计等。   1)学生功能:查看信息:个人基本信息,课表,成绩表等内容    修改信息:可修改个人基本信息   2)教务员功能: 查看信息:学生个人基本信息、课表、成绩等内容   修改信息:学生个人基本信息、课表、成绩等内容   添加学生信息:学生个人基本信息后对同班级同年级的学生进行成绩表和课表的初始化   删除学生全部信息   展示同专业同年级学生的基本信息   对同专业同年级的学生的各科成绩进行排名   3)其他功能:分文件储存不同专业不同年级学生的信息资料,方便信息的处理   添加新年级和专业的数据并初始化   各模块说明:   1)基本信息类:个人基本信息,信息的生成和获取   2)学生信息类:继承于基本信息类,增加学生特有的信息,信息的生成和获取,
    2022-03-16 11:59:31下载
    积分:1
  • VC++ CREATE VIEW语句动态创建数据库视图
    VC++ 动态创建视图,使用CREATE VIEW语句动态创建数据库视图,具体请下载本源码测试,需要提前准备好数据库。需要导入一个ADO动态链接库msado15.dll,该动态库位于系统盘下的“Program FilesCommon FilesSystemado”目录下。数据库连接好才可以使用本程序动态创建视图。
    2022-08-03 17:42:23下载
    积分:1
  • VC++ 编程获取硬盘SMART信息
    VC++ 编程获取硬盘驱动器的SMART信息,SMART信息能对硬盘的磁头单元、硬盘温度、盘片表面介质材料、马达及其驱动系统、硬盘内部电路等进行监测,及时分析并预报硬盘可能发生的问题。运行本源码测试前,请先打开Biso中的SMART信息监测开关。   本源码中的信息是英文的,使用时需要对照翻译过来,测试图如下所示。
    2022-06-03 05:08:07下载
    积分:1
  • VC Calendar 自定义的日历选择插件
    VC++ 6.0 Calendar 自定义的日历选择插件,这个功能相信大家都比较熟悉了,是用来选择日期和时间的,避免用户输入出错,选择后可把数据填充在指定的文本框内,或提交至下一个数据处理环节。这个例子是前两年的,风格和Windows XP相似,与Windows7和10版本有所区别,核心代码为:   //设置选择日期   void CCalendarDlg::OnSetCursel()   {    //更新变量    UpdateData(TRUE);    //构造日期变量    CTime tm(m_nYear,m_nMonth,m_nDay,0,0,0);    m_MonthCalCtrl.SetCurSel(tm);   }   //设置日期   void CCalendarDlg::OnSetToday()   {    //更新变量    UpdateData(TRUE);    //构造日期变量    CTime tm(m_nYear,m_nMonth,m_nDay,0,0,0);    m_MonthCalCtrl.SetToday(&tm);    m_MonthCalCtrl.SetCurSel(tm);   }   
    2022-01-25 19:36:09下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载