资源描述:
《进程列举并管理实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验项目进程列举并管理实验姓名汪道云蒋磊时间2012.4.10一、实验要求:1.了解进程的基本概念;2.了解WindowsCE下线程通信的基本原理与方法;3.加深对线程互斥和同步的理解;4.掌握EVC关于线程控制的API函数;5.掌握在PDA下实现多线程的基本方法。二、实验内容1.实现一个基本的EVC程序,并通过EVC的进程调试工具观察该进程的工作情况。2.编程实现在一个进程中运行多个线程的实验。3.阅读实验原理,了解线程通信基本原理和方法。4.使用EVC进行交叉编译、链接程序,生成能够在实验平台运行的可执行程序并进行
2、验证。三、实验步骤1.首先根据前几次实验的方法,用PB编译并下载wince内核;2.导出并安装SDK,如果导出SDK遇到问题的同学,向老师索取导出成功的SDK,也可以直接安装D:博创pxa270实验箱资料270dvpWinCE5.0SDK目录下的SDK。3.wince内核运行成功后,关闭PB。4.用usb线连接实验箱与PC机,实现文件同步。文件同步时,必须关闭360杀毒和360防火墙;5.打开EVC,准备编写应用程序。6.在EVC下实现一个MyHello应用程序新建一个MyHello工程,建工程时,选WCEMFC
3、AppWizard(exe),其他几步向导均不做任何修改。修改MyHelloView.cpp文件:在FileView标签中选择MyHelloView.cpp文件,找到文件下的OnDraw函数,根据ExtTextOut的使用方法,加入以下代码:CStrings="hello,我们开始EVC编程了!";intL=_tcslen(s);CRectrect=CRect(100,100,100,100);pDC->ExtTextOut(rect.left,rect.top,ETO_OPAQUE,&rect,s,L,NULL);如
4、下图所示:编译,完成后下载到实验箱上。如果实验箱上没有自动运行该程序,可以安装上鼠标然后在实验箱上双击该程序,程序运行后如下图所示:用EVC的ProcessView工具去观察,可以看到当前的HelloEVC的进程在运行,而该进程下面只有一个线程。7、在EVC下实现一个MyThread应用程序(1)新建工程:在EVC下创建一个基于MFC的单文档应用MyThread。(2)修改菜单:在创建了MyThread工程及相关文件后,在菜单栏增加一个菜单“Thread”,在该菜单下增加菜单项“StartThread”,ID号为“ID
5、_StartThread”。(3)增加消息响应函数:使用类向导增加菜单项“ID_StartThread”的消息响应函数OnStartThread()。4)编辑消息响应函数OnStartThread(),代码如下:voidCMyThreadView::OnStartThread(){CreateThread(NULL,NULL,ThreadProc1,NULL,NULL,NULL);}(5)编辑线程控制函数ThreadProc1(),它不是类CMyThreadView的成员函数,将函数ThreadProc1()放在函数O
6、nStartThread()前面,ThreadProc1()的代码为:DWORDWINAPIThreadProc1(LPVOIDparam){inti=0;doubler=35.0;doublealpha=3.14/30.0;intcx,cy;if(ThreadCount>=8){MessageBeep((WORD)-1);return0;}cx=50+(ThreadCount%4)*120;if(ThreadCount<4)cy=60;elsecy=200;ThreadCount++;CClientDCdc(((CF
7、rameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView());dc.SetROP2(R2_NOT);dc.MoveTo(cx,cy);dc.LineTo(int(cx+r*cos(i*alpha)),int(cy+r*sin(i*alpha)));for(;;){dc.LineTo(cx,cy);dc.LineTo(int(cx+r*cos(i*alpha)),int(cy+r*sin(i*alpha)));i++;if(i==60)i=0;Sleep(500);}retu
8、rn0;}(6)查看结果(7)查看多线程的工作情况:四、实验中遇到的问题,以及对问题的分析和解决方法本次实验,只是在导出并安装SDK时,还是跟上次一样,出现“Thisbuildconfigurationhasnotbeensysgen'ed”的3个错误和0个警告。基本上每个同学都遇到的问题。在把老师给点的代码,放到EVC下运行时,