代码改变世界

随笔分类 - C#

【经典问题】现代操作系统经典问题回顾(哲学家就餐问题C#实现)

2010-08-21 21:10 by GUO Xingwang, 3181 阅读, 收藏, 编辑
摘要: 在1971年,著名的计算机科学家艾兹格·迪科斯彻提出了一个同步问题,即假设有五台计算机都试图访问五份共享的磁带驱动器。稍后,这个问题被托尼·霍尔重新表述为哲学家就餐问题。这个问题可以用来解释死锁和资源耗尽。 阅读全文

【读书笔记】《框架设计(第2版)CLR Via C#》中两个比较有趣的知识点

2009-12-20 17:18 by GUO Xingwang, 2590 阅读, 收藏, 编辑
摘要: 在阅读这本书时我发现很多值得思考和有趣的地方,例如:JR关于调用的参数和返回值的建议;位索引器示例;触发事件的事件安全;字符串格式化和字符串的驻留等。尤其是.NET的垃圾回收机制在这本书中讲的很详细。其中有两个知识点是让我感到收获很大的地方而且例子也很详细,我在这里就单独拿出来与大家分享,同时也作为知识点进行总结,这里讲没什么技术含量,大家别BS我。 阅读全文

【经验总结】.Net的并发连接数限制问题

2009-12-18 22:03 by GUO Xingwang, 6474 阅读, 收藏, 编辑
摘要: 最近在项目中遇到了很棘手的问题,查到最后发现是由于HttpWebRequest对于同一个domain的请求建立的连接数同时不能超过两个的限制造成的。我用这篇短文把对这个问题的处理记录下来,同时也做为个人的经验积累吧,希望对大家有所帮助。 阅读全文

BlogEngine.Net架构与源代码分析系列part12:页面共同的基类——BlogBasePage

2008-11-13 12:05 by GUO Xingwang, 4159 阅读, 收藏, 编辑
摘要: 上一篇文章我向大家展示了BlogEngine.Net中Theme的原理和一些开发规范,里面有很多内容和这篇文章有着联系,建议大家这两篇文章结合在一起看,这样效果会更好。在这篇文章中我主要向大家说明BlogBasePage,PostViewBase,CommentViewBase这三个类的内部实现上的一些技巧以及它们与页面,文章和评论之间是如何组织在一起的,希望对大家阅读这部分代码有帮助。 阅读全文

BlogEngine.Net架构与源代码分析系列part7:Web2.0特性——Pingback&Trackback

2008-11-10 13:22 by GUO Xingwang, 4692 阅读, 收藏, 编辑
摘要: 今天这篇文章主要向大家讲述一下Blog系统中应用最多的,具有Web2.0特性的,也是一种标准化的——Pingback&Trackback。分析一下BlogEngine.Net提供的比较全面的Pingback&Trackback支持。本文内容相对来说比较独立,如果您对整个系列感兴趣请参照这里http://www.cnblogs.com/Thriving-Country/archive/2008/11/05/1326334.html。 阅读全文

static成员与Asp.net中Application对象的线程同步实现

2008-11-03 16:41 by GUO Xingwang, 2506 阅读, 收藏, 编辑
摘要: 在做.net平台的应用开发时经常遇到线程同步的问题,在多线程环境下对共享资源的访问我们有lock关键字来实现线程同步。lock关键字实际上也就是Monitor.Enter和Moniter.Exit的语言级别上的实现,本质上没有区别。那么Monitor.Enter和Moniter.Exit在底层上又是怎么实现的呢?Asp.net的Appliction对象(以下直接称为Appliction)又是怎样封装的呢? 阅读全文

一个自己写的组件--异常报告(3):开发一个异常处理程序

2008-07-04 22:37 by GUO Xingwang, 1863 阅读, 收藏, 编辑
摘要: 上文中我对异常报告组件进行了重构和配置,实际上在上文中MyDebuger组件就已经完成了。我在设计这个组件时考虑到了它的扩展性,其中一个重要的扩展就是可以定义新的异常处理程序模块之后通过配置与主程序一起工作。这节我就开发一个简单的异常处理程序,之后进行配置实现写日志到文件系统。 阅读全文

一个自己写的组件--异常报告(2):组件的重构和配置

2008-07-03 20:40 by GUO Xingwang, 1726 阅读, 收藏, 编辑
摘要: 在上一篇文章中我对异常报告组件MyDebuger做了一个一般性的介绍并用简单的C#对其进行了实现,发表之后网友们提出了一些建议,也提出了一些Bug。在这里,非常感谢来自你们的建议,我从中领略到了社区对于软件开发的重要性,社区的意见是宝贵的。其中有一位朋友说"虽然能看懂但是代码逻辑混乱,应该好好重构下",还有人说那个Debuger.Debug()方法中的obj为空的问题.自己仔细的考虑了一下,可能确实比较混乱,于是在这一篇文章中我将着力讲述我对MyDebuger组件是怎样进行重构的,并对上一节提到的配置问题进行了实现(实现的可能不太好,但是已经基本满足需求了).花了一整天时间,希望这次会好一点。 阅读全文

一个自己写的组件--异常报告(1):组件介绍与简单架构

2008-07-01 15:27 by GUO Xingwang, 2665 阅读, 收藏, 编辑
摘要: 大家是否有时感觉在程序调试时对于无法获得异常信息而苦恼,尤其是当程序已经脱离调试环境部署到客户机上时更是如此,对于客户机上的程序出现的异常无法确定异常的详细信息,结果找不到问题所在.反正我是经历过这种无奈 阅读全文