设为首页 加入收藏

TOP

14.7 上机实践
2013-10-07 01:19:43 来源: 作者: 【 】 浏览:65
Tags:14.7 上机 实践

14.7  上机实践

在对话框应用程序中添加编辑框和按钮,然后单击按钮后创建两个线程,一个线程在上面的编辑框中连续输出10个"A",输出完成后,另一个进程在下面的编辑框中输出10个"B"。运行结果如图14.8所示。

 
(点击查看大图)图14.8  运行结果

提示:采用事件类进行控制。具体步骤如下:

(1)创建基于对话框的应用程序,添加两个进度条控件,并且添加变量。

(2)定义CEvent类的对象,并且声明两个全局函数。

  1. Cevent event;  
  2. UINT write1(LPVOID pParam);  
  3. UINT write2(LPVOID pParam); 

(3)实现该两个函数,控制进度条移动。

  1. UINT write1(LPVOID pParam)  
  2. {  
  3.     CProgressCtrl *p=(CProgressCtrl*)pParam;  
  4.     for(int i=0;i<100;i++)  
  5.     {  
  6.         p->SetPos(i);  
  7.         Sleep(100);  
  8.     }  
  9.     event.SetEvent();  
  10.     return 0;  
  11. }  
  12. UINT write2(LPVOID pParam)  
  13. {  
  14.     WaitForSingleObject(event.m_hObject,INFINITE);  
  15.     CProgressCtrl *p=(CProgressCtrl*)pParam;  
  16.     for(int i=0;i<100;i++)  
  17.     {  
  18.         p->SetPos(i);  
  19.         Sleep(100);  
  20.     }  
  21.     return 0;  

(4)添加单击按钮的消息映射,启动线程。

  1. void CTestDlg::OnStart()   
  2. {  
  3.     // TODO: Add your control notification handler code here  
  4.     CWinThread *pwrite1=AfxBeginThread(write1,  
  5.         &m_pro1,  
  6.         THREAD_PRIORITY_NORMAL,  
  7.         0,  
  8.         CREATE_SUSPENDED);  
  9.     pwrite1->ResumeThread();      
  10.  
  11.     CWinThread *pwrite2=AfxBeginThread(write2,  
  12.         &m_pro2,  
  13.         THREAD_PRIORITY_NORMAL,  
  14.         0,  
  15.         CREATE_SUSPENDED);  
  16.     pwrite2->ResumeThread();      

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇14.4 线程同步 下一篇详解C++ Server测试过程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: