摘要: 在上篇文章.NET对象与Windows句柄(二):句柄分类和.NET句柄泄露的例子中,我们有一个句柄泄露的例子。例子中多次创建和Dispose了DataReceiver和DataAnalyzer对象,但由于忘记调用DataAnalyzer的Stop方法,导致产生句柄泄露。本文假定我们已经发现了泄露现 阅读全文
posted @ 2016-04-13 23:05 文禾 阅读(3444) 评论(5) 推荐(6) 编辑
摘要: 上一篇文章介绍了句柄的基本概念,也描述了C#中创建文件句柄的过程。我们已经知道句柄代表Windows内部对象,文件对象就是其中一种,但显然系统中还有更多其它类型的对象。本文将简单介绍Windows对象的分类。 句柄可以代表的Windows对象分为三类,内核对象(Kernel Object)、用户对象 阅读全文
posted @ 2016-03-31 00:00 文禾 阅读(5517) 评论(2) 推荐(6) 编辑
摘要: 在.NET编程中,得益于有效的内存管理机制,对象的创建和使用比较方便,大多数情况下我们无须关心对象创建和分配内存的细节,也可以放心的把对象的清理交给自动垃圾回收来完成。由于.NET类库对系统底层对象进行了封装,我们也不需要调用Windows API来操作非托管对象。但不直接操作非托管对象,并不意味着 阅读全文
posted @ 2016-03-20 23:32 文禾 阅读(10113) 评论(9) 推荐(19) 编辑
摘要: 在平时使用软件或是.NET程序开发的过程中,我们有时会遇到程序关闭后但进程却没有退出的情况,这往往预示着代码中有问题存在,不能正确的在程序退出时停止代码执行和销毁资源。这个现象有时并不容易被察觉,但在另一些情况下却会产生影响软件功能的Bug。本文列举可能影响.NET程序进程退出的因素,并用几个小例子 阅读全文
posted @ 2016-03-10 22:45 文禾 阅读(2333) 评论(0) 推荐(0) 编辑