c#项目近期阶段学习总结

来源:互联网 发布:专业软件测试培训学校 编辑:程序博客网 时间:2024/06/05 01:09

1、接口

    接口A  ,实现接口A的类B 、类C ,操作类D:

  一、类B、类C是实现接口的不同实例对象,类B与类C实现接口的方法时不同的,只是方法名相同

 二、类D中包含接口A的,在类D中调用接口A时,把类B或类C的对象传给A则调用B或C中实现的方法

 三、实现在类D中调用类B或类C实现的方法


2、锁 

  Object  OpenLock = new Object();

     一、Monitor.Enter 与Lock都是加锁操作

            1)、 Monitor.Enter(OpenLock)

                  try  {       }

                  finally {    Monitor.Exit(OpenLock)          }

            2)、 Lock(OpenLock)

                      {                   }

    二、Lock只能针对引用类型加锁,Monitor还能对值类型加锁

   三、Lock是一个语法糖,它将Monitor对象进行封装,对object对象加上一个互斥锁,其他进程暂不能对比对象操作

   四、Monitor/Lock都是排他锁(排他锁:对对象A加上排他锁,则可在此进程中对A对象修改、读写其他事物不能操作A)

3、(BeginInvoke/EndInvoke) 异步委托; 

 BeginInvoke异步 / Invoke同步 :在多线程中经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法(调用控件的方法应该封装起来)时错误的,BeginInvoke / Invoke就是为了解决这个问题的;  
Invoke导致工作线程等待,而BeginInvoke不会,异步基于多线程



0 0
原创粉丝点击