项目任务设计多线程通信及实现编程

项目任务设计多线程通信及实现编程

ID:9099645

大小:53.50 KB

页数:3页

时间:2018-04-17

项目任务设计多线程通信及实现编程_第1页
项目任务设计多线程通信及实现编程_第2页
项目任务设计多线程通信及实现编程_第3页
资源描述:

《项目任务设计多线程通信及实现编程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《.NET项目开发基本技能》项目:轻院MineQQ通信软件开发轻院软件专业项目文档作者:廖永红项目任务(二)目录任务描述:1知识技能:1方案分析:1实践内容:2学习研究:3任务描述:回顾《C#程序设计》中的有关多线程的概念及编程组件、方法,分析本地飞鸽通信的功能,设计通信的发送、接收线程,在主线程中实例化线程对象并启动。知识技能:知识:C#语言的多线程的概念及编程组件、方法等知识。技能:能进行多线程编程,实现数据的同时发送与接收功能,并多线程调试。方案分析:假如有一个Work类,如下:classWor

2、k{publicstaticvoidmyThreadFun(){………}………}创建一个线程从Work.myThreadFun()运行,并启动它,有三个步骤:(1)定义一个线程的开始,从哪个函数开始运行。把某方法封装为一个ThreadStart:ThreadStartmyThreadDelegate=newThreadStart(Work.DoWork);(2)用上面的“函数对象”为参数,定义一个线程的对象。ThreadmyThread=newThread(myThreadDelegate);(3)用

3、上面的“函数对象”为参数,定义一个线程的对象。myThread.Start();3/3《.NET项目开发基本技能》项目:轻院MineQQ通信软件开发轻院软件专业项目文档作者:廖永红其它方法:myThread.Sleep(10000);//线程睡眠10秒myThread.Abort();//线程终止实践内容:在VisualStudio2005开发环境中设计程序界面,主线程中定义发送及接收线程。通过定时器定义定时执行的界面状态列新线程。参考如下:在主窗体启动时,要做好各种初始工作:1.初始化界面。2.显示

4、登录窗体,进行认证。3.启动“定时发送心跳”、“等待接收网络数据”、“定时更新界面”等线程。代码如下:privatevoidQQmainForm_Load(objectsender,EventArgse){this.Hide();//主窗体启动时,先隐藏主窗体本身,再弹出登录窗体QQloginFormloginform=newQQloginForm();loginform.ShowDialog();//以对话框方式显示登录窗体button_myfriends_Click(null,null);//默认

5、显示“我的朋友”相当点击“我的朋友”//初始化并启动QQ相关线程(请看后面功能类)ClientQqFunc.QQ_startup();////启动环循发送心跳线程、等待接收数据包的线程//定时执行界面更新timer_update_view.Start();}QQ主窗体关闭时,要停止QQ相关线程,代码如下:privatevoidQQmainForm_FormClosed(objectsender,FormClosedEventArgse){ClientQqFunc.QQ_shutdown();//QQ相

6、关线程(请看后面功能类)Environment.Exit(0);//完全退出程序}当双击(DoubleClick)“本地在线”中的用户头像时,把从“在线用户列表”变量中取出此用户数据,看它是否已有聊天窗体?没有则新建一个,并从聊天消息表变量中,取用户聊天消息显示出来。弹出聊天窗体(在后面设计),代码如下:privatevoidlistView_localuser_DoubleClick(objectsender,EventArgse){//双击,弹出聊天窗体ListViewItemclick_item

7、=listView_localuser.SelectedItems[0];//被击中的项stringuser_id=click_item.Text;//弹出聊天用户的聊天窗体,并在历史消息控件中显示历史聊天消息UserInfouser_info=(UserInfo)ClientQqFunc.localuser_list[user_id];3/3《.NET项目开发基本技能》项目:轻院MineQQ通信软件开发轻院软件专业项目文档作者:廖永红QQtalkFormtalk_win=(QQtalkForm)us

8、er_info.talkform;if(talk_win==null)//窗口是否已存在{//窗口不存在,建新聊天窗体,并从消息表中取出聊天信息更新到窗体消息控件上talk_win=newQQtalkForm();//把用信息信传递(设置)给它,以后使用talk_win.other_info=user_info;talk_win.self_id=ClientQqFunc.localuser_info.id;talk_win.Text="正在与"+user

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。