兰州交通大学:《Visual 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 6.0实例教程》课程教学资源(PPT课件)第8章 常处理和诊断.ppt
- 兰州交通大学:《Visual 6.0实例教程》课程教学资源(PPT课件)第7章 MFC通用类.ppt
- 兰州交通大学:《Visual 6.0实例教程》课程教学资源(PPT课件)第6章 文件操作.ppt
- 兰州交通大学:《Visual 6.0实例教程》课程教学资源(PPT课件)第5章 图形操作.ppt
- 兰州交通大学:《Visual 6.0实例教程》课程教学资源(PPT课件)第4章 菜单、快捷键和控制条.ppt
- 兰州交通大学:《Visual 6.0实例教程》课程教学资源(PPT课件)第3章 对话框与控件.ppt
- 兰州交通大学:《Visual 6.0实例教程》课程教学资源(PPT课件)第2章 文档和视.ppt
- 兰州交通大学:《Visual 6.0实例教程》课程教学资源(PPT课件)目录.ppt
- 《计算机文化基础》课程PPT教学课件:课堂提问3.ppt
- 《计算机文化基础》课程PPT教学课件:课堂提问2.ppt
- 《计算机文化基础》课程PPT教学课件:课堂提问.ppt
- 《计算机文化基础》课程PPT教学课件:第五讲 文字处理系统Word2000.ppt
- 《计算机文化基础》课程PPT教学课件:PowerPoint.ppt
- 《计算机文化基础》课程PPT教学课件:复习.ppt
- 《计算机文化基础》课程PPT教学课件:Exce电子表格.ppt
- 《计算机文化基础》课程PPT教学课件:计算机网络基础.ppt
- 《计算机文化基础》课程PPT教学课件:计算机信息系统安全.ppt
- 《计算机文化基础》课程PPT教学课件:第四讲 WINDOW使用基础.ppt
- 《计算机文化基础》课程PPT教学课件:第三讲 操作系统发展与DOS.ppt
- 《计算机文化基础》课程PPT教学课件:第二讲 计算机工作原理与数字信息编码.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 01 绪论.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 10 网络安全解决方案.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 02 物理安全.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 03 信息加密与PKI.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 04 防火墙技术.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 05 入侵检测技术.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 06 访问控制技术.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 07 网络安全检测与评估技术.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 08 计算机病毒防范技术.ppt
- 《计算机网络安全技术教程》教学资源(PPT课件讲稿)ch 09 备份技术.ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)绪论(主讲:陈向群).ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)第一章 操作系统概述.ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)第十章 分布式系统中的同步问题.ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)第十一章 分布式系统中的进程及处理器.ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)第十二章 分布式文件系统.ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)第二章 进程管理.ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)第三章 用户接口与作业管理.ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)第四章 存储管理.ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)第五章 文件管理.ppt
- 北京大学计算机系:《操作系统原理 Principles of Operating System》课程教学资源(PPT课件讲稿)第六章 设备管理.ppt