欢迎来到天天文库
浏览记录
ID:24096617
大小:49.50 KB
页数:3页
时间:2018-11-12
《基于vc++的多线程通信程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于VC++的多线程通信程序设计介绍了essage(Dsg,,LPARAMlParam);该函数将一条消息放入到指定线程的消息队列中,并且不等到消息被该线程处理时便返回。调用该函数时,如果即将接收消息的线程没有创建消息循环,则该函数执行失败。2)MFC对多线程编程的支持MFC中有两类线程,分别称之为工线程和用户界面线程。二者的主要区别在于工线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面
2、线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于FC中,一般用全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工线程和用户界面线程。两种重载函数原型和参数分别说明如下:①CAL,UINTnStackSize=0,DAL,UINTnStackSize=0,DyDlg::GetIpAddress(constCStringsHostName,CStringsIpAddress)//获得本地IPintCM
3、yDlg::GetNamebyAddress(constCStringIpAddress,CStringsYouName)//获得对方计算机名称3)线程启动pThreadLisen=::AfxBeginThread(_ListenTcpThread,this);//开始TCP线程pThreadLisen=::AfxBeginThread(_UDPThread,this);//开始UDP线程4)服务器线程UINT_ListenTcpThread(LPVOIDlparam)//TCP监听线程UINT
4、_UDPThread(LPVOIDlparam)//UDP接受信息线程开始5)客户端线程UINT_SendFileThread(LPVOIDlparam)//发送文件线程UINT_SendMsgThread(LPVOIDlparam)//TCP发送信息线程UINT_SendMsgUdpThread(LPVOIDlparam)//UDP发送信息UINT_ThreadCapture(LPVOIDlparam)//抓取对方屏幕线程以上程序在WindoicrosoftVisualC++6.0中编译执行通
5、过。4结束语要设计出性能较好的多线程通信程序,不仅需要对操作系统的处理过程很清楚,还需要对VC++的线程处理函数十分了解,并对具体应用中各线程的关系非常清楚,以利于在应用程序中控制同步事件的发生,避免出现死锁或不能同步处理的现象。:杨红军王金英:电脑知识与技术·学术交流2008年29期
此文档下载收益归作者所有