| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 472 人关注过本帖
标题:向大家请教一个关于多线程互斥的问题,望不吝赐教,十分感谢!
只看楼主 加入收藏
hk_zgy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-9-13
结帖率:0
收藏
 问题点数:0 回复次数:1 
向大家请教一个关于多线程互斥的问题,望不吝赐教,十分感谢!
DWORD WINAPI ThreadProc18(LPVOID pthread)
 {
 while(1)
 {
 WaitForSingleObject(hMutex,INFINITE);
 for (int i=0;i<10;i++)
 {
 CWnd * pWnd;
 pWnd =CWnd::FindWindow ( NULL, "UDP_test" );//UDP_test为对话框标题
CString str;
 str.Format("%d",i);
 pWnd->SetDlgItemText(IDC_EDIT1_xiancheng2,str);
 Sleep(100);
 }
 global_count++;
 ReleaseMutex(hMutex);
 }
 }
 DWORD WINAPI ThreadProc19(LPVOID pthread)
 {
 while(1)
 {
 WaitForSingleObject(hMutex,INFINITE);
 for (int i=0;i<10;i++)
 {
 CWnd * pWnd;
 pWnd =CWnd::FindWindow ( NULL, "UDP_test" );//UDP_test为对话框标题
CString str;
 str.Format("%d",i);
 pWnd->SetDlgItemText(IDC_EDIT1_xiancheng,str);
 Sleep(100);
 }
 global_count++;
 ReleaseMutex(hMutex);
 }

 }
程序中还使用了WSAAsyncSelect(m_socket_net,m_hWnd,UM_SOCK,FD_READ),socket UDP通信,在
 case FD_READ:
 ...
                    WaitForSingleObject(hMutex,INFINITE);
 global_count++;
 ReleaseMutex(hMutex);
         break;
程序运行后,上面的两个线程工作正常,交替增加并显示,但是当接收到网络数据时,程序停在case FD_READ的WaitForSingleObject(hMutex,INFINITE);处,所有线程停止,程序死了,请问是怎么回事?十分感谢!
搜索更多相关主题的帖子: 多线程 对话框 
2014-10-19 22:28
天使梦魔
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
不知道你怎么设计其他的,WaitForSingleObject去百度下是做什么用的再来讨论


你这样设计线程不适用消息泵么,居然用死循环一直执行,不怕计算拖死其它线程么(我说这个和你那个无关)
2014-10-31 13:04
快速回复:向大家请教一个关于多线程互斥的问题,望不吝赐教,十分感谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015185 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved