《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
- 《工程CAD2004》AUTOCAD2004教程PPT电子课件.ppt
- 《计算机二级公共基础知识》课程教学资源(教材电子书,WORD版,含习题与答案).doc
- 《AutoCAD中文版辅助教程》第9课 创建与编辑文本内容.ppt
- 《AutoCAD中文版辅助教程》第8课 图案填充与查询.ppt
- 《AutoCAD中文版辅助教程》第7课 图块、属性和外部参照.ppt
- 《AutoCAD中文版辅助教程》第6课 图层管理.ppt
- 《AutoCAD中文版辅助教程》第5课 平面图形的高级编辑.ppt
- 《AutoCAD中文版辅助教程》第4课 平面图形的基本编辑.ppt
- 《AutoCAD中文版辅助教程》第3课 绘制基本平面图形.ppt
- 《AutoCAD中文版辅助教程》第2课 绘图前的准备.ppt
- 《AutoCAD中文版辅助教程》第1课 Autocad205基础.ppt
- 《AutoCAD中文版辅肋设计教程》第15课 项目设计案例.ppt
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)AfxCore.rtf
- 《Visual C++ 6.0实例教程》教学资源(PPT课件讲稿)AfxPrint.rtf
- 清华大学:《C++数据结构》第一章 绪论.ppt
- 清华大学:《C++数据结构》第二章 数组.ppt
- 清华大学:《C++数据结构》第三章 链表.ppt
- 清华大学:《C++数据结构》第四章 栈和队列.ppt
- 清华大学:《C++数据结构》第五章 递归与广义表.ppt
- 清华大学:《C++数据结构》第六章 树与森林.ppt
- 清华大学:《C++数据结构》第七章 集合与搜索.ppt
- 清华大学:《C++数据结构》第八章 图.ppt
- 清华大学:《C++数据结构》第九章 排序.ppt
- 清华大学:《C++数据结构》第十章 索引与散列.ppt
- 《Visual Basic语言程序设计》第10章 菜单程序设计.ppt
- 《Visual Basic语言程序设计》第11章 文 件.ppt
- 《Visual Basic语言程序设计》第12章 界面设计.ppt
- 《Visual Basic语言程序设计》第13章 Visual Basic与数据库.ppt
- 《Visual Basic语言程序设计》第14章 对象的链接与嵌入.ppt
- 《Visual Basic语言程序设计》第15章 多媒体.ppt
- 《Visual Basic语言程序设计》第16章 常用ActiveX控件.ppt
- 《Visual Basic语言程序设计》第1章 Visual Basic概述.ppt