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 245
下载积分: 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++ 获取主机名和IP地址及多线程运行示例
    VC++6.0获取主机名和IP地址,并演示多线程的运行示例,作者:fiwen。   获取IP地址是单击窗口右上角的“获缺按钮,即可显示主机名称和该机IP地址,多线程运行演示则打开后程序立即运行,左右两侧不同的线程,执行不同的任务,各自互不影响。   多线程演示部分,分别用了两个线程,每一个线程控制一个do while循环来运行,比如其中一个线程是这样写的:   CString str;   bool ReadData= TRUE;   int i=1;   do   {    //从1到99的平方    str.Format("%-3d的平方:%-5d",i,i*i);    pList->AddString(str);    Sleep(100);    i++;   }   while (ReadData=TRUE);   return 0;
    2022-01-20 22:35:47下载
    积分:1
  • VC++自定义鼠标击键(点击)的声音
    VC++自定义鼠标击键声音,包括单击鼠标左键和右键的声音信息,一般情况下,Windows系统中有内置的声音,本程序是修改掉默认的单击声,改为自定义的,想熟悉修改过程的,可下载本源码参考。   运行本程序后,在窗口空白处单击鼠标左键或右键会出现与系统不一样的叮咚声音。
    2022-03-25 07:58:00下载
    积分: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
  • 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++ gethostbyname获取主机名和IP地址
    VC++ 获取主机名和IP地址,也就是根据主机名获得IP地址,使用了gethostbyname函数,然后再使用addr.Format格式化获取到IP地址。具体来看以下代码获取到IP地址:   // 获得主机ip地址   struct hostent * phost;   phost = gethostbyname(szhostname);//根据主机名获得IP地址    m_strName=szhostname;   int h_length=4;   for( int j = 0; j  {    CString addr;    if( j > 0 )    str += ".";    addr.Format("%u", (unsigned int)((unsigned char*)phost->h_addr_list[0])[j]);    str += addr;   }   m_strIP=str;
    2022-11-09 11:50:03下载
    积分:1
  • VC++6.0 窗口过程函数及消息发送、响应测试实例
    VC++6.0 窗口过程函数及消息发送、响应测试实例,在应用程序中窗口过程函数及其消息发送、响应机制的使用,能够方便程序集中处理各类消息,使得整个程序的架构更加合理、清晰。窗口过程函数及其消息发送、响应机制的使用方法:   ⑴自定义消息:   在Resource.h文件中自定义消息:#define WM_MYMSG 2000   ⑵添加窗口过程函数的声明和实现体:   ①在.h文件中添加窗口过程函数声明:   virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);   ②在.cpp文件中添加窗口过程函数实现体:   ⑶发送消息的方式比较:   ①this->SendMessage(WM_MYMSG,0,0);   ②this->PostMessage(WM_MYMSG,0,0);   ③this->SendNotifyMessage(WM_MYMSG,0,0);   这三个函数都可以将指定的消息发送到某个窗口,但是这三种消息的发送方式存在如下的区别:SendMessage立即调用窗口过程函数,而且直到窗口过程函数处理完消息后才返回。PostMessage则是将指定的消息寄送到窗口消息队列后立即返回。对于SendNotifyMessage来说,如果窗口是调用线程创建的,SendNotifyMessage为该窗口调用窗口过程函数,并且等待窗口过程函数处理完消息后才返回;如果窗口是由不同的线程创建的,SendNotifyMessage将指定的消息传给窗口过程函数后立即返回。
    2023-03-05 04:00:03下载
    积分:1
  • VC++ Win32 DLL的创建:获取最大和最小数(使用导出函数关键字)
    VC++ 创建Win32 DLL的例子附源码:获取最大和最小数(使用导出函数关键字)。编译本项目源码后,将直接在Debug目录下生成Get_Max_Min.Dll文件。   Get_Max_Min_Dll文件夹下为Win32 DLL的创建:获取最大和最小数(使用.def文件)源码。
    2023-02-27 05:35:03下载
    积分:1
  • VC++课程设计 背单词软件
    VC++课程设计 背单词软件源代码,VC++课堂作业,在visual studio2010环境下开发的背单词程序,附有完整的源代码,程序采用文件存储信息,有单词复习,修改录,单词游戏,单词测验等功能。背单词过程中,若忘记单词,可按任意键显示正确答案。打错的词会加入错词本,为以后的练习提供纠错机会。本程序的运行需要先注册或设置用户名称,然后将记录各自的背单词情况。
    2022-10-10 05:30:03下载
    积分:1
  • VC6.0 对画图文档实行序列化处理
    VC6.0 文档序列化实例——对画图文档实行序列化处理,文挡之序列化(Serialize)读写例子,代码翻译:一剑。   // 打印带水平线的文档名字   pDC->SetTextAlign(TA_LEFT);   pDC->TextOut(0,-25, strHeader); // 1/4 inch down   // 在文档头的下面画一条直线横穿页面   TEXTMETRIC textMetric;   pDC->GetTextMetrics(&textMetric);   int y = -35 - textMetric.tmHeight; // 横线在距离文本下方1/10 英寸处   pDC->MoveTo(0, y); // 从左边空白处   pDC->LineTo(pInfo->m_rectDraw.right, y); // 到右边空白处   y -= 25;   pInfo->m_rectDraw.top += y;
    2023-04-28 14:50:03下载
    积分:1
  • 基于VC6的游戏内存修改器2
    VC6.0写一个简单的内存修改器,输出一个变量的值和地址实现原理:   BOOL ReadProcessMemory(    HANDLE hProcess,   LPCVOID lpBaseAddress,   LPVOID lpBuffer,   DWORD nSize,   LPDWORD lpNumberOfByteRead   );   WriteProcessMemory(hProcess,lpBaseAddress,lpBuffer,nSize,lpNumberOfByteRead);   编写测试程序   搜索内存
    2022-01-25 22:26:20下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载