第26课 如何设置绘图 以及 多线程的应用
来源:互联网 发布:单片机usb供电电路图 编辑:程序博客网 时间:2024/05/21 17:35
1.在MFC的Document—View架构中涉及绘图的代码可以通过以下几种方式来进行设计:
①全部通过OnDraw函数来绘制图形,只要其他函数涉及绘图的功能,都可以通过操作系统来激励OnPaint来调用该函数进行绘图。导致的结果:这样不用意出错误。但是数据量大,操作频繁的时候容易引起闪屏。
②可以通过在什么地方需要绘图,就在那里写绘制图形的代码。导致结果:绘图代码过于分散,不便于维护,以及以后的升级和代码重用。
③可以将绘图代码写在一块,然后谁需要绘制图形,谁就调用相关的函数。导致结果:便于维护,升级和代码重用。
2.多线程方面的知识:
①线程状态及其相互转换:
线程有四种状态:创建,运行,挂起,销毁。
进程本身可以自己进行挂起,但是必须等到别的进程来进行唤醒。
②线程冲突的原因:可以使用共享区
③防止线程冲突的方式,设置临界区。
1.首先要创建一个临界区全局对象 : CCriticalSection g_CriticalSection;
2.在需要用到临界区的地方,对象加锁:g_CriticalSection.Lock();在加锁后,其他线程中,凡是用到此全局对象的,在运行到临界区发现加锁之后,就挂起,等待释放资源然后在竞争。
运行完相关区域之后解锁:g_CriticalSection.Unlock();
#include <Windows.h>#include <iostream>using namespace std;HANDLE handle;CRITICAL_SECTION g_cs;DWORD WINAPI WinThread(LPVOID lp){EnterCriticalSection(&g_cs);for (int i = 0 ; i < 1000 ; ++i){cout << "子进程正在运行"<<endl;}LeaveCriticalSection(&g_cs);return 0;}int main(){handle = CreateThread(NULL,0,WinThread,NULL,0,NULL);InitializeCriticalSection(&g_cs);for (int i = 0 ; i < 10 ; i++){cout <<"主线程没有进入临界区"<<endl;}EnterCriticalSection(&g_cs);for (int i = 0 ; i < 10 ; i++){cout <<"主线程进入临界区!!!!!!"<<endl;}LeaveCriticalSection(&g_cs);DeleteCriticalSection(&g_cs);cin.get();cin.get();return 0;}
3.临界区内部的代码越少越好,更准确的说是代码运行的时间越少越好。线程同步是用来保证线程可以不间断的访问临界区里面的数据。如果占用资源时间太长,会造成假死的现象。
0 0
- 第26课 如何设置绘图 以及 多线程的应用
- matlb中如何设置坐标轴的参数以及进行绘图的如何进行注释
- 第27课 多线程详解 以及股票软件的分析
- 初窥多线程:多线程的优点、缺点 以及 应用场合
- 第四周:多线程应用
- 多线程应用以及final和static的区别与应用
- 黏滞位的作用以及如何设置
- python 如何设置多线程
- 索引的应用场景以及如何使用
- OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(一)
- OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(二)
- OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(三)
- OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(四)
- OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(五)
- OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(六)
- OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(七)
- OpenGLES的简单应用绘图,以及照相机画面变色变形渲染(八)
- 设置GC绘图的透明度
- [转]Android经典的开源项目
- 反射获取属性和方法
- 浮点数存储方式 float
- IBM worklight studio 插件安装的三种方法
- Android 涂鸦最佳实践
- 第26课 如何设置绘图 以及 多线程的应用
- Linux 简介
- Vector
- UVA 10537 - The Toll! Revisited(dijstra扩展)
- UVA 188 - Perfect Hash
- 浏览器的CSS Hacks
- Cristian’s (Time Server) Algorithm
- 小试牛刀之BTrace
- IntelliJ IDEA 快捷键