导航

2013年4月10日

摘要: 所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序不合适。 3.资源分配不当。 学过操作系统的朋友都知道:产生死锁的条件有四个:1.互斥条件:所谓互斥就是进程在某一时间内独占资源。2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得资源,在末使用完之前,不能强行剥夺。4.循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。 例如: 死锁是因为多线程访问共... 阅读全文

posted @ 2013-04-10 16:27 吴豪 阅读(467) 评论(3) 推荐(0) 编辑

摘要: PreSubclassWindow PreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。其实,用户要在对话框中使用定制控件,必须用DDX或者SubclassDlgItem函数子类化控件,这时PreSubclassWindow一定会被调用。如果用户直接创建定制控件窗口,CWnd::CreateEx函数就一定会被调用,控件窗口一定会被子类化以安 阅读全文

posted @ 2013-04-10 11:31 吴豪 阅读(681) 评论(0) 推荐(0) 编辑

摘要: voidCAsTestToolsDlg::DoDataExchange(CDataExchange*pDX){CDialog::DoDataExchange(pDX);DDX_Control(pDX,IDC_MAINTREE,m_Treemain);//IDC_MAINTREE是树控件的ID,m_Treemain是树控件对应类的对象}自己的理解:1.变量和控件进行绑定2.通过修改变量的数值控制控件操作。问题一:上面这句有什么作用呢?问题二:都什么场合要用到DDX_Control呢?问题三:有关DDX_Control之类的代码是否都应该放在上面的函数里?回答:简单的说,就是把控件变量(m_Tre 阅读全文

posted @ 2013-04-10 09:42 吴豪 阅读(322) 评论(0) 推荐(0) 编辑