06 2013 档案
摘要:严格的说,这篇叫做lock篇不是太合适,为什么这么说,看完短文就知道了!大家都对上一篇神奇的Timer中情景2中的示例有很多自己的看法,请允许我今天一一的评说一下吧,说的不对的地方,欢迎拍砖!1.还是应该写一个5分钟的定时器,只不过在回调函数中检查内容是否有变化!这个方案是没有问题的,因为RichTextBox中有一个Modified属性,用它可以来检查内容时候有改变,具体的代码很简单,我就不写了但是这个方案的不足之处在于:如果RichTextBox没有Modified属性呢?那你就需要做两件事:1.每次回调时需要比较当前内容与上一次内容是否相同;2.比较完之后,需要缓存此时RichTextB
阅读全文
摘要:最近的一个项目有一些地方需要用到定时功能,在设计过程中,突然发现.net的Timer类居然还有很多我以前没有用过的功能,这里就跟大家分享一下注:这里的Timer类特指System.Threading.Timer类情景1:我需要服务器在每天的00:00点执行一个操作我当开始想到的方法很2b,居然是设定定时器每个1分钟去检查时间,如果当前时间与00:00相差不超过1分钟时,就执行操作!!!由于这段的代码太过2b,所以就不放上来了!我都不知道自己刚开始怎么会想到如此2的设计,几乎刚把代码写完我自己就把这个方案个否定了,极度浪费资源不说,还不能精准的在00:00执行操作!于是我又一次查看了msdn,m
阅读全文
摘要:WCF是个好东西啊!用起来方便,功能强大,扩展性也比较大,但是WCF也有坑爹的地方,坑爹的地方就在于:如何才能在客户端正确的关闭WCF连接!如果你直接将客户端调用Close关闭,或者使用using语句,那你将是个悲剧,这点相信使用WCF的同志都知道的,因为ClientBase类的Close()方法被调用后,实际上是关闭了一个网络会话,并且会抛出异常!CommunicationException和TimeoutException!这似乎违反常理,但确实发生了。因为一般来说Close函数都不会抛出异常。这个问题的解决办法是使用Try-Catch语句包含Close()方法,然后再异常处理中使用Abo
阅读全文
摘要:我是一个标准的C#程序员,从c#3.5一直用到c#4.5,感觉c#确实就是我想要的编程语言,功能强大,语法糖超多,以前也写过一段时间的java,感觉c#用起来要方便多了,java写个排序代码还要专门定义一个类,确实显得很累赘,相比较c#在很多地方都可以通过语法糖,使用简明的语法来实现想要的功能,从c#3.5的linq一直到c#的async、await关键字,用起来真是爽啊,写起代码来也是呼呼的。要是来从编程体验性来讲,我觉得c#强过java太多了,而且vs确实很强大(当然占用系统资源也很多,我觉得这是功能太丰富的代价)。但是前段时间我升级到vs2012,开始使用c#4.5编程时候,发现一些比较
阅读全文