
C#
文章平均质量分 56
PunCha
这个作者很懒,什么都没留下…
展开
-
C#中的is关键字原来会做null检查
internal class ShouldLimitNameLengthConverter : IValueConverter { // Here, the value 20 is only a temp local var. It is used to control whether // we should show the whole Name sec原创 2013-08-08 16:47:47 · 1464 阅读 · 0 评论 -
并发学习之:Synchronization进行粗粒度线程同步的例子
一个使用Synchronization进行粗粒度线程同步的例子。(注意,Synchronization特性和ContextBoundObject必须同时使用,否则无效)这个例子很简单,2个Task对象,分别调用兽族农民的WorkWork和GugiGugi方法。GugiGugi内部有着3秒的停顿,用来观察输出结果。运行之后,很明显的可以看到,在某一个线程执行GugiGugi的时候,另一个线程在等原创 2013-01-05 16:58:23 · 1186 阅读 · 0 评论 -
WPF与输入法冲突研究之三:韩文输入法在不同平台,WinForm/WPF下的区别
输入法的问题,已经把我折腾的精疲力尽了。。终于在Win7平台上,中日韩三国输入法能够在WPF上正确使用之后,WinXP又不行了。。。韩文输入法无法正确使用。。。好吧,只能做几个小程序,测试下韩文输入法在不同平台,不同框架(WinForm/WPF)下的区别:1. 韩文在输入过程中,很奇特,会有一个高亮闪烁的小方块,这个表示,当前的韩文字符正在构造中,他会随着你之后的输入而变化,这个高原创 2013-01-05 12:23:45 · 2060 阅读 · 0 评论 -
破解C#的readonly只读字段
From: http://www.cnblogs.com/mgen/archive/2011/10/05/2199383.html破解C#的readonly只读字段 目录 请允许我再唠叨几句const和readonly 修改readonly字段:计策1:反间计 —— 反射修改计策2:借刀杀人——调节字段偏转载 2013-01-03 23:34:08 · 8623 阅读 · 0 评论 -
RabbitMQ学习之:(九)Headers Exchange (转贴+我的评论)
From: http://lostechies.com/derekgreer/2012/05/29/rabbitmq-for-windows-headers-exchanges/RabbitMQ for Windows: Headers ExchangesPosted by Derek Greer on May 29, 2012This is t转载 2012-12-29 15:23:30 · 4220 阅读 · 0 评论 -
RabbitMQ学习之:(八)Topic Exchange (转贴+我的评论)
From: http://lostechies.com/derekgreer/2012/05/18/rabbitmq-for-windows-topic-exchanges/RabbitMQ for Windows: Topic ExchangesPosted by Derek Greer on May 18, 2012This is the sev转载 2012-12-29 12:59:56 · 2939 阅读 · 0 评论 -
RabbitMQ学习之:(七)Fanout Exchange (转贴+我的评论)
From:http://lostechies.com/derekgreer/2012/05/16/rabbitmq-for-windows-fanout-exchanges/PunCha: There is not too much to say about this topic....RabbitMQ for Windows: Fanout Exchanges转载 2012-12-29 12:02:29 · 4459 阅读 · 0 评论 -
RabbitMQ学习之:(六)Direct Exchange (转贴+我的评论)
From: http://lostechies.com/derekgreer/2012/04/02/rabbitmq-for-windows-direct-exchanges/RabbitMQ for Windows: Direct ExchangesPosted by Derek Greer on April 2, 2012This is th转载 2012-12-29 00:47:43 · 5689 阅读 · 0 评论 -
RabbitMQ学习之:(五)Exchange Type (转贴+我的评论)
From: http://lostechies.com/derekgreer/2012/03/28/rabbitmq-for-windows-exchange-types/RabbitMQ for Windows: Exchange TypesPosted by Derek Greer on March 28, 2012This is the f转载 2012-12-29 00:24:59 · 4863 阅读 · 0 评论 -
RabbitMQ学习之:(四)回头看刚才写的程序 (转贴+我的评论)
转自:http://lostechies.com/derekgreer/2012/03/18/rabbitmq-for-windows-hello-world-review/我的心得:1. 在创建ConnectFactory时,我们可以传入主机名、端口号、用户名/密码、虚拟Host等参数。2. 也可以使用ampq://用户名:密码@主机名:端口号/%2f3. Channel转载 2012-12-29 00:16:49 · 3163 阅读 · 0 评论 -
C#异步编程之:(三)使用TaskScheduler.UnobservedTaskException
不多解释,抄书了:If you don’t catch AggregateException when you call a trigger method, the .NET Framework will escalate the exceptions. By default, this means that the unhandled exceptions will be thrown ag原创 2012-12-19 01:33:36 · 5112 阅读 · 0 评论 -
书评:Pro .NET 4 Parallel Programming in C#
Pro .NET 4 Parallel Programming in C#ISBN-13 (pbk): 978-1-4302-2967-4ISBN-13 (electronic): 978-1-4302-2968-1看了网上的评价,说这本书很适合入门的看,而且例子多,都可以运行,例子写的很严谨!NND,这本书真的是有点烂!优点:很全面!缺点:没深度!而且例子经不原创 2012-12-19 01:14:27 · 1383 阅读 · 0 评论 -
C#异步编程之:(二)部分心得体会
唉,想好好学学.Net异步编程,可惜没有好的书,又想深入,又想全面。。。现在看得一本Adam Freeman的,感觉很全面,可惜不深入,只能自己慢慢磨石子过河,写点心得:1. 感觉.Net提出TPL的概念是为了抽象线程和Mutex,Event,临界区这些东西。Task是对线程的抽象,而CancellationToken给我的感觉就是提供了对Task的控制。Token其实应该是Task内原创 2012-12-19 00:06:07 · 1109 阅读 · 0 评论 -
C#异步编程之:(一)Task对象和lamda表达式探究
基于TPL的异步编程,最简单的就是使用Task对象,而创建一个Task对象,最简单的就是使用lamda表达式: static void Main(string[] args) { // create the cancellation token source CancellationTokenSource tokenSourc原创 2012-12-18 21:51:46 · 4577 阅读 · 0 评论 -
C#异步编程之(三):深入 Async 和 Await 的实现及其成本
From: http://msdn.microsoft.com/zh-cn/magazine/hh456402.aspx异步性能:了解 Async 和 Await 的成本Stephen Toub异步编程长时间以来一直都是那些技能高超、喜欢挑战自我的开发人员涉足的领域 — 这些人愿意花费时间,充满热情并拥有心理承受能力,能够在非线性的控制流程中不断地琢磨回调,之后再回调。随着 M转载 2012-12-13 14:18:26 · 8829 阅读 · 0 评论 -
创建自己的awaitable类型
From: http://www.cnblogs.com/TianFang/archive/2012/09/21/2696769.html在C# 5.0中引入了await关键字,通过它可以非常容易的实现异步操作。在大多数的时候,await一般适合Task一起使用的,也非常方便。但有的时候,我们也需要自定义我们自己的awaitable类型,以实现更高的灵活性和效率。可以用于awa转载 2012-12-12 10:14:42 · 1847 阅读 · 0 评论 -
书评: LINQ高级编程
LINQ高级编程ISBN: 9787302198857优点:字体大,纸张好,看起来很快,说的东西很浅显,让你感觉LINQ很简单,一学就会!作为LINQ入门看看还可以,节省时间,大概10小时左右就可以看完。缺点:对不起“高级”这两个字,其实是一本超级初学者的书,连using都要教你怎么写。很烂的一本书,代码重复性高,把读者当猪一样的,看到书籍封面上作者猪一样的头像原创 2012-12-05 00:02:22 · 665 阅读 · 0 评论 -
好玩的Array类型
今天学习LinQ的时候,为了研究LinQ到底支不支持实现了IEnumerable(非泛型)接口的对象发现了有趣的现象,LinQ是不支持的,但是LinQ竟然可以对string[] 查询,据我所知,所有的数组都是派生自Array基类,那么是Array实现了IEnumerable接口?通过F12查看Array的定义,发现也没有啊!那么。。。长话短说,Array是实现IEnumeable的,但是这个是运行原创 2012-11-15 08:53:47 · 1884 阅读 · 0 评论 -
LinQ 学习笔记
书: LINQ高级编程 (Professional LINQ) By Scott Klein今天看了书的1~4章,觉得作者很奇怪,为什么代码有时候是C#的,有时候又是VB得?幸好我懂VB,不然的话,看到被C#所不齿的VB代码,肯定会像吃了苍蝇那般的恶心。可以肯定的是,这不是一本好书!没看到什么亮点,作者也没有很深入的讲解LINQ的底层实现,很对不起Pro这个词!所幸的是,纸张质量还是不原创 2012-11-15 08:30:36 · 840 阅读 · 0 评论 -
WPF RadioButton的探究,为啥选中一个其他都自动不选中了呢?
研究这个是出于一个群聊中碰到的一个问题:“我现在遇到个很尴尬的局面。。 我封装了一个控件 有状态A和B, 并排放置10个控件在一个Grid下面 希望点击一个控件变为A状态后 其它9个都变为状态B”,这不禁让我想起了WPF的RadioButton, 他有一个有趣的功能:“如果需要用自定义的方法对RadioButton作分组,那么可以用它的GroupName属性,这个属性是字符串类型的,任何拥有原创 2012-10-12 16:39:15 · 8024 阅读 · 2 评论 -
WPF与输入法冲突研究之二:TextInput事件的BUG?
哎,在学习和使用了WPF一段时间之后,有点感觉WPF是个不太成熟的框架,不知道是我学的太肤浅,还是WPF得BUG太多! >>>>>>>模拟场景客户:我需要一个能实时响应用户输入的程序,你能实现一下吗?程序员:哦,那个简单啊,一个TextBox就能解决了。客户:给我写个Demo吧,就把用户每次输入的内容,现实在程序里面就行了。程序员:好的。客户:不过有一点要注意,我们的客原创 2012-10-09 16:11:41 · 5744 阅读 · 1 评论 -
WPF与输入法冲突研究之一:百度输入法会导致WPF程序的崩溃!
哎,在学习和使用了WPF一段时间之后,有点感觉WPF是个不太成熟的框架,不知道是我学的太肤浅,还是WPF得BUG太多! >>>>>>>模拟场景客户:能用WPF给我编写个小程序吗?程序员:哦,什么样的小程序?客户:一旦我输入什么东西,你就给我弹出一个警告框。程序员:这么简单?!还有别的要求吗?客户:支持各种输入法,不能崩溃!程序员:哦,收您500可以吗?客户:原创 2012-10-09 15:34:04 · 6145 阅读 · 1 评论 -
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local Machine 完美解决
以前遇到过相似的问题,是ACCESS JET引擎没有注册,那是因为Office 2010 x64是没有JET 4.0引擎了,但是我已经该用了ACE 12了,为什么还是有问题了?网上找了很多资料,都不能解决问题!都说,需要安装一个DataEngine x86。。 最终,终于找到问题所在,VS创建的项目,会默认把TargetCPU设置成x86,那么会强制让编译出来的程序变成32位的,当然应用程原创 2012-04-07 03:14:37 · 20262 阅读 · 0 评论 -
yield return
yield return 是用来实现迭代器的:public class ListClass{ public IEnumerable SampleIterator(int start, int end) { for (int i = start; i <= end; i++) yield return i; }}使用代码: f原创 2012-04-01 11:01:40 · 688 阅读 · 0 评论 -
Path::InvalidPathChars 为什么被作废
看到微软把Path::InvalidPathChars标记为Obsolete,觉的很奇怪,查了一下MSDN,发现InvalidPathChars是一个只读的字段(数组类型),而不是属性。调用它不是很安全的,因为恶意代码可以修改该数组的内容,从而造成你的程序不正确运行。解决的方法是调用Path.GetInvalidPathChars() 方法。【引】保护并且公开只读的数组字段http:/转载 2012-04-01 10:59:17 · 1644 阅读 · 0 评论 -
不同XML之间节点的拷贝
Original: http://www.aspcode.net/The-node-to-be-inserted-is-from-a-different-document-context.aspx Soon after I recommended my (just published solution) for merging XML files for a person I know h转载 2012-04-01 10:58:44 · 3444 阅读 · 0 评论