《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第9章 多线程

第9章多线程 内容摘要: 1.创建线程 2.实现线程间通信 3.利用线程同步技术保障数据安全
第9章 多线程 内容摘要: 1. 创建线程 2. 实现线程间通信 3. 利用线程同步技术保障数据安全 返回目录

9.1 91创建线程 学习目标 调用 AfxBeginThread()来启动线程
9.1 创建线程 学习目标 调用AfxBeginThread()来启动线程。 9.1 返回第9章

9.1 程序的实现步骤 1.利用 App wizard生成程序框架( Thread Test) 编辑资源 3.添加菜单响应函数 4.编写线程函数 5.在视中输出信息
程序的实现步骤 1. 利用AppWizard生成程序框架(ThreadTest ) 2. 编辑资源 3. 添加菜单响应函数 4. 编写线程函数 5. 在视中输出信息 9.1

9.1 步骤1生成程序框架( Minutest) 1.项目名称: Thread Test 2.选择单文档界面应用程序( Single document)
步骤1 生成程序框架(MenuTest) 1. 项目名称: ThreadTest 2. 选择单文档界面应用程序(Single document) 9.1

9.1 步骤2编辑资源 1.编辑菜单资源 线程Pop-up选中 Caption 启动线程 ID THREAD START 其他任务 ID TREEAD OTHER 2编辑对话框资源 IDD DIALOG THRAED CDIgThread 启动了线程
步骤2 编辑资源 1.编辑菜单资源 线程 Pop-up 选中 Caption ID 启动线程 ID_THREAD_START 其他任务 ID_TREEAD_OTHER 2.编辑对话框资源 9.1 IDD_DIALOG_THRAED CDlgThread

9.1 步骤3添加菜单响应函数 Class Name Objects IDs Messages 1. CThread Test view ID THREAD START COMMAND 2. CThread Test view ID TREEAD OTHER COMMAND void CThreadTestView:: On Threadstarto HWND hWnd = GetsafeHwndo AfX Begin Thread(TreadProc, hWnd, THREAD PRIORITY NORMAL); void CThreadTestView: On Thraedothero CDIg Thread dg dIg DoModal;
步骤3 添加菜单响应函数 Class Name Objects IDs Messages 1. CThreadTestView ID_THREAD_START COMMAND 2. CThreadTestView ID_TREEAD_OTHER COMMAND 9.1 void CThreadTestView::OnThreadStart() { HWND hWnd = GetSafeHwnd(); AfxBeginThread(TreadProc, hWnd, THREAD_PRIORITY_NORMAL); } void CThreadTestView::OnThraedOther() { CDlgThread dlg; dlg.DoModal(); }

9.1 步骤4编写线程函数 1.在视类中添加两个成员变量。并在构造函数中初始化 class CThreadTestview: public Cview C Thread TestView: C Thread Testviey m strMessage="没有线程启动"; public: m itime =0 CString m strMessage int m iTime;
步骤4 编写线程函数 1. 在视类中添加两个成员变量。并在构造函数中初始化 9.1 class CThreadTestView : public CView { …… public: CString m_strMessage; int m_iTime; …… } CThreadTestView::CThreadTestView() { m_strMessage = "没有线程启动"; m_iTime = 0; }

9.1 步骤5在视中输出信息 void CThread Testview:: On DraW(CDC pDc) CThread TestDoc' pDoc GetDocumento ASSERT VALID(pDoc); lI TODO: add draw code for native data here char ch Number[6: itoa(m iTime, chNumber, 10); pDC->Textout(30, 30, m strMessage) pDC->Textout(30, 50, ch Number)
步骤5 在视中输出信息 9.1 void CThreadTestView::OnDraw(CDC* pDC) { CThreadTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here char chNumber[6]; itoa(m_iTime, chNumber, 10); pDC->TextOut(30,30, m_strMessage); pDC->TextOut(30,50,chNumber); }

2.线程函数 9.1 UINT TreadProc(LPVOID param) CThreadTestApp"pApp=(cThreadTestApp ")AfX GetAppo CMain Frame *pAin Frame =(CMain Frame *)pApp->GetMainWnd(; CThreadTestView pView =(CThreadTestview ")pAin Frame->GetActiveViewO pview> m-strMessage="启动了一个线程!"; while(pview->m_iTime 20) . Sleep (1000) pView->m iTime ++ pView->Invalidate pView->m iTime =0; pview> m strMMessage="线程结東!"; return 0;
2. 线程函数 9.1 UINT TreadProc(LPVOID param) { CThreadTestApp *pApp=(CThreadTestApp *) AfxGetApp(); CMainFrame *pMainFrame = (CMainFrame *)pApp->GetMainWnd(); CThreadTestView *pView = (CThreadTestView *) pMainFrame->GetActiveView(); pView->m_strMessage = "启动了一个线程!"; while(pView->m_iTime m_iTime ++; pView->Invalidate(); } pView->m_iTime =0; pView->m_strMessage = "线程结束!"; return 0; }

9.1 基本知识 CWnd类的 Getsafehwndo;返回窗口句柄 2. AfxBeginThread ( 3.线程函数(返回UINT) 4. CMain Frame: GetActive View 5.: Sleep(1000);
基本知识 1. CWnd类的GetSafeHwnd();返回窗口句柄 2. AfxBeginThread(); 3. 线程函数 ( 返回UINT) 4. CMainFrame::GetActiveView(); 5. ::Sleep(1000); 9.1
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第8章 异常处理和诊断.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第7章 MFC通用类.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第6章 文件操作.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第5章 图形操作.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第4章 菜单、快捷键和控制条.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第3章 对话框与控件.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)第2章 文档和视.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)目录.ppt
- 《电子政务教案》第8章 电子政务与政府流程优化.ppt
- 《电子政务教案》第5章 全球电子政务建设实践.ppt
- 《电子政务教案》第4章 政府公共服务的电子化.ppt
- 《电子政务教案》第3章 电子政务的基础与核心.ppt
- 《电子政务教案》第2章 电子政务对政府管理的影响.ppt
- 《电子政务教案》第1章 信息技术的发展与电子政务的产生.ppt
- 《电子政务教案》第11章 我国电子政务的发展战略.ppt
- 《电子政务教案》第10章 电子政务的法律环塘.ppt
- 《电子政务教案》第9章 电子政务的安全管理.ppt
- 《电子政务教案》第7章 电子政务的系统规划与建设.ppt
- 《电子政务教案》第6章 电子政务的技术基础.ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第四章 电子数据交换.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)绪论(主讲:花芳).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)第一章 文献及概念.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)第二章 文献检索原理及方法.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)工程索引 The Engineering Index(Ei简介).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)Elsevier全文电子期刊说明.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)IEEE/IEE Electronic Library(IEL).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)科学文摘数据库(INSPEC).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)博硕士论文数据库.ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)机检上课及实习安排.doc
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)Science Abstracts(SA).ppt
- 清华大学:《科技文献检索》课程教学课件(PPT讲稿)科学引文索引.ppt
- 清华大学:《科技文献检索》课程教学资源(学习资料)参考课题.doc
- 《计算机应用技术基础》第五章 创建图表体验数据功析效果.ppt
- 《计算机应用技术基础》第三章 制作会议日程表.ppt
- 《计算机应用技术基础》第一章 计算机基础知识.ppt
- 《计算机应用技术基础》第七章 用图表进行数据分析.ppt
- 《计算机应用技术基础》第二章 开始使用 Windows.ppt
- 《计算机应用技术基础》第六章 快速、规范地制作公文.ppt
- 《计算机应用技术基础》第五章 Word的其他功能.ppt
- 《计算机应用技术基础》第三章 让 Windows为你服务.ppt