C#和.Net3.0第一步 读书笔记

类型运算

     使用ref关键字课时值参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该参数变量中。定义方法和调用方法都必须显示使用ref关键字。相当于C中的out修饰符。

线程

    线程的同步是一个很重要的问题。但是有的时候,后台线程并不需要跟主线程同步,这时使用线程池技术进行处理最合适,也最方便,(线程池中的线程一定是后台线程)。线程池在被创建的时候会带有很多个工作线程,对于每个传入的请求,线程池都将分配一个线程,因此可以异步处理请求,而不会占用主线程,也不会延迟后续请求的处理。一旦池中的某个线程完成了任务,它将返回到线程池线程队列中等待,等待被再次征用。线程池中的线程默认为后台线程。

   .NET中有两种类型的线程,一种是前台线程,一种是后台线程。她们的区别在于,后台线程会随着主线程的结束而结束,而前台线程,应用程序要等待前台线程结束应用程序才能结束。

   加入程序中有多个线程,且这几个线程都要对同一个对象进行操作,这时该对象的线程安全问题一定要加以考虑并解决。一种是用Synchronized方法,这种方法对集合对象的每一个方法都进行了安全处理(加Lock关键字等),需要将所有的集合对象都转换为安全集合对象,因为此时非安全集合对象和线程安全集合对象一起使用很容易造成集合的双重锁定,这时会导致死锁的做法,所以效率低下。另外一种方法是使用集合的SyncRoot属性,该方法避免了双重锁定,便于使用安全集合对象和集合对象混合编程,提高效率。

组件技术

    组件实际上是实现了某些功能的、有输入输出接口的黑匣子。解决方案可以包含很多个“项目”,每个项目都是一个程序集。

抽象类

    把抽象类理解成文章的摘要。摘要中涉及的很多要点都要在文章的各个部分实现。

委托

    委托对象只能代表相应返回值类型和相应参数列表的方法。

阻塞方法

     阻塞就是停滞不前知道条件满足的情形。阻塞的方法在使用WinForm进行编程时要特别注意,如果你把这些方法放在主线程里将可能会导致窗体刷新失败,导致“死机”状态,你需要将这些阻塞的方法放在Timer线程或自定义线程里。

数据库编程

    要实现同时查询多张表的目的,必须使用更高级的查询语句,就是表连接查询和子查询。表连接查询效率较低。存储过程与普通的SQL语句相比,可以减少网络流量,且是编译执行的,因此速度要快的多。

   每个数据库能接受的连接都是有限的,每个连接都可以为一个应用程序服务,所以数据库连接是非常宝贵的资源。

   断开数据库连接操作中,当你调用Fill方法时,系统会自动调用一个SelectCommand命令,当你调用Update方法时系统会自动调用增,删,改三大命令。

posted on 2012-11-26 22:58  每一天都是崭新的~  阅读(172)  评论(1)    收藏  举报

导航