1.窗体的隐藏与显示
this.show() this.Hide()
2.MDI多文档界面
设置父窗体,IsMDIContainer = true;
设置子窗体,Form2 fr2 = new Form2();
fr2.MdiParent = this;
fr2.Show();
MDI子窗体排列:MDILayOut.Horizal:水平平铺,垂坠平铺,叠层平铺
3.继承窗体实现的两种方式:
通过编写代码 :Form2 : WinFormApplication.Form1;一定是命名空间.窗体对象;
通过窗体选择器:通过项目添加winform窗体中的继承窗体。
修改子窗体中控件的属性,父窗体中的属性Medifiers设置为public,否则不能修改子窗体中的属性。
4.读取注册表中的信息
主要通过RegistryKey类中的OpenSubKey方法,GetSubKeyNames方法,GetValueNames方法实现
5.使用多线程的3种情况
1)执行占用大量时间的操作
2)区分具有不同优先级的任务
3)使用户界面可以在将时间分配给后台任务时仍能快速做出响应
6.使用多线程将产生的不良情况
1)因为线程为占用内存空间,使用多线程后,创建进程、AppDomain对象及线程数目将受到内存的限制
2)跟踪大量的线程将耗费大量的处理器时间,如果线程过多,则其中大多数线程不会产生明显的进度。如果大多数当前线程处于一个进程中。则其他的进程的线程的调度频率就会降低。(因为在线程之间来回的切换)
3)因为在线程之间来回的切换和调度,代码执行过程非常复杂,可能会产生许多的bug
4)因为线程中包含许多的资源,销毁线程需要了解可能发生的问题并对那些问题进行处理。
7.线程同步的四种方式:lock , mutex , Monitor , interlocked
lock 和monitor 是通过锁定资源:当一个线程锁定了某块资源后,则其他的线程不能再使用此块资源。
Mutex 是使用互斥体的方式实现线程的同步:当一个线程获得了当前资源的互斥体,则其他的线程不能再获得此互斥体。只用当前线程使用完资源后其他的线程才能使用此资源。
线程同步就是避免几个线程同时使用一块资源而发生不必要的错误。
多线程管理
互锁机制、互斥体
使用队列存储数据
开辟监视线程,用以监视工作线程,为每个工作线程(工作线程排队工作)设置标志位,工作线程结束,改变标志位。