10 2011 档案

摘要:或许大家觉得这东西过于简单以至于无需一提? 但是在我参与的项目中,其实很多适用于 Extension Method 的地方,大家却根本就没有意识到。Extension Method 的一个主要用途便是构造辅助方法。 在编程中为了抽象和简化,我们会把一些常用但又不好专门为它们创建一个对象类的方法放到所谓的Helper 中,在使用时调用 Helper.Xxxx()。例如:public static class Helper{ public static SecureString ToSecureString(string value) { SecureString res... 阅读全文

posted @ 2011-10-24 15:48 leon_ALiang 阅读(700) 评论(0) 推荐(0) |

摘要:C#中类类型是引用类型,本质是个指针所以C#中所有类对象本身都是4字节(32位机),包含一个内存地址,这个地址指向堆内存空间class A{public int i;public A a;}A object = new A();object本身占用4字节内存,存放堆内存地址,这块内存的大小是8字节(int 4字节,a也是四字节),当成员a实例化的时候,只是a的内容不是null了,存放堆内存中的另一个地址,指向一块8字节内存空间。因为能确定A的一个对象占用多少内存空间(4字节,C#所有类对象都是占4字节,在32位机中),所以可以定义资料引用:http://www.knowsky.com/5406 阅读全文

posted @ 2011-10-20 11:18 leon_ALiang 阅读(591) 评论(0) 推荐(0) |

摘要:当你设计一个应用程序时,你可能想使用一些需要长时间运行的代码,而又不中继当前正在进行的工作。一个方法是使用线程,将这个工作交由一个线程去执行,如果这些代码在运行过程中发生了错误,它可能会影响所在进程空间的所有线程。第二个方法是建立一个子进程,由这个子进程完成所需工作,这样子进程代码的错误不会影响到父进程的执行。子进程与父进程之间可以通过动态数据交换(DDE)、OLE、管道、邮件槽等进行通信,使用内存映射文件是最便利的方法之一。当前子进程终止后,子进程句柄变为有信号,父进程可使用 WaitForSingleObject 来等待子进程退出,这样父进程就可使用 GetExitCodeProcess 阅读全文

posted @ 2011-10-19 11:30 leon_ALiang 阅读(1270) 评论(0) 推荐(0) |

摘要:C#中怎么使用lock关键字?有哪些注意事项?先看MSDN的定义:lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。先来看看执行过程,代码示例如下:假设线程A先执行,线程B稍微慢一点。线程A执行到lock语句,判断obj是否已申请了互斥锁,判断依据是逐个与已存在的锁进行object.ReferenceEquals比较(此处未加证实),如果不存在,则申请一个新的互斥锁,这时线程A进入lock里面了。这时假设线程B启动了,而线程A还未执行完lock里面的代码。线程B执行到lock语句,检查到obj已经申请了互斥锁,于是等待;直到 阅读全文

posted @ 2011-10-16 21:12 leon_ALiang 阅读(967) 评论(0) 推荐(0) |

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3