多线程1153同步对象.pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多线程1153同步对象

11.1 进程与线程 11.2 线程的分类 11.3 创建和使用线程 11.4 设置线程的优先级 11.5 线程之间的通信与同步 11.6 工作者线程实例 11.7 用户界面线程实例 (9)同时,在类CThreadTestAView中为上面两个自定义消息添加两个响应函数。代码如下: //头文件ThreadTestAView.h //////////////////////////////////////////// class CThreadTestAView:public CView { … LResult OnQuestion(WPARAM wParam, LPARAM IParam); LResult OnAvswer(WPARAM wParam, LPARAM IParam); … }; ////////////////////////////////////////// //实现文件ThreadTestAView.cpp ///////////////////////////////////////// void CThreadTestAView::OnQuestion(WPARAM wParam, LPARAM IParam) { //问题生成,开始回答 m_IsAnswer=TRUE; m_pThread2-ResumeThread(); } void CThreadTestAView::OnAnswer(WPARAM wParam, LPARAM IParam) { //回答完毕,暂停【回答】线程 m_pThread2-SuspendThread(); if(!m_IsCorrect) { //用户未回答,则给出答案 CString s; s.Format(%3d * %3d=%3d, m_a, m_b, m_c); MessageBox(s, 正确答案); } //暂停1秒 Sleep(1000); m_IsCorrect=FALSE; m_IsAnswer=FALSE; //开始下一轮问题 SetEvent(hEvent1); } (10)在头文件ThreadTestAView.h中增加一个用户键盘输入响应的函数OnChar的声明。代码如下: //头文件ThreadTestAView.h ///////////////////////////////////////// class CThreadTestAView:public CView { protected: … afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); }; 在ThreadTestAView.cpp文件中实现OnChar函数。 ////////////////////////////////////////// //实现文件ThreadTestAView.cpp ///////////////////////////////////////// BEGIN_MESSAGE_MAP(CThreadTestAView. CView) … ON_WM_CHAR() void CThreadTestAView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { //TODO:在此添加消息处理程序代码和/或调用默认值 if(m_IsStart m_IsAnswer) { //用户给出回答 if(nChar=y | | nChar= =y) SetEvent(hEvent2); } CView::OnChar(nChar, nRepCnt, nFlags); } (11)在OnDraw函数中添加如下代码,实现问题和答案的输出。 void CThreadTestAView::OnDraw(CDC* pDC) { CThreadTestADoc* pDoc=GetDocument(); ASSERT_VALID(pDoc); //TODO:在此处为本机数据添加绘制代码 if(m_IsStart) { if(!m_IsCorrect) { CString s; s. Format(%3d * %3d=?, m_a, m_b); pDC-TextOut(50,50,s); } else { CString s; s. Format(%3d * %ed=%3d, m_a, m_b, m_c); pDC-TextOut(50,50,s); } } } (12)在视图类的初始化函数中启动两个线程,代码如下: void CThreadTestAView::OnInitialUpdate(

您可能关注的文档

文档评论(0)

wangyueyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档