代码改变世界

WPF:关于Animation的CPU消耗

2012-06-13 20:38 by 木木子, 1997 阅读, 0 推荐, 收藏, 编辑
摘要:当前开发的项目中,CPU消耗一直维持在20-30%,再加上内存泄露这事儿,真是很头疼的事。项目组内的同事都为这事忙活着。 项目中的主要展示界面是用WPF完成的,有涉及到动画,主要是有几个滚动条,来标记这几个模块正在进行。刚开始,用了GIF来简单的显示,用的也挺好的。之后在内存泄露这事件中,被做排查工作的同事揪了出来:一直在耗内存啊!然后,用了WPF的Animation模仿了GIF的效果。显示效果... 阅读全文

回顾 .NET 3.0/3.5特性(1)

2012-05-20 16:16 by 木木子, 226 阅读, 0 推荐, 收藏, 编辑
摘要:Object Initializers 对象初始化器 之前,经常这样初始化一个对象: User user = new User(); user.Age = 23; user.Name = "sanity";有了3.0后,就这样初始化对象了: User user = new User { Age = 23, Name = "Sanity" };对象初始化器把... 阅读全文

Unity Application Block Hands-on Lab for Enter-Lib 5.0:Lab 4-Configuring Containers[Translation]

2012-02-20 15:33 by 木木子, 1303 阅读, 1 推荐, 收藏, 编辑
摘要:实验估计时间:15mins介绍在该实验中,你将会练习使用Unity的更多特性:泛型装饰链、覆盖和数组注入。实验中用到的应用程序是实验三的升级版,添加了第三方框架persistence,能够存储证劵信息。这个persistence框架中定义了泛型接口IRepository<>和实体泛型类DebugRepository<>。开始之前,先在这里下载代码。任务1:配置开泛型与闭泛型Unity container可以配置使用闭泛型,就像使用非泛型类型和开泛型一样。在下面的case中,只要没有特殊的闭泛型,任何开泛型都可以替代闭泛型的配置。具体操作在StockTickerPrese 阅读全文

Unity Application Block Hands-on Lab for Enter-Lib 5.0:Lab 3-Using a Configuration File[Translation]

2012-02-17 13:19 by 木木子, 1380 阅读, 0 推荐, 收藏, 编辑
摘要:实验估计时间:25mins介绍在实验中,你将会学习通过程序配置文件去创建一个Unity Container。使用配置文件有些类似于上篇实验中的调用配置API。实际上,配置文件方式可以看成脚本调用API。先在这里下载实验代码。任务1:使用配置文件保存Container的配置信息在这次任务中,主要是用配置文件替换Container的创建代码。添加引用的有:Microsoft.Practices.Unity.Configuration和System.Configuration。打开Program.cs文件,添加代码 using Microsoft.Practices.Unity.Configurat 阅读全文

Unity Application Block Hands-on Lab for Enter-Lib 5.0:Lab 2-Using the Configuration API[Translation]

2012-02-16 14:18 by 木木子, 1333 阅读, 3 推荐, 收藏, 编辑
摘要:实验估计时间:20mins介绍在这次实验中,你将会练习在运行时通过相关注入来配置Container,而不是依赖于Attributes。并且学习生命周期管理。先在这里下载代码。任务1:使用API配置Container更改Container的配置方法,覆盖默认的注入规则在这个任务中,主要是增加和修改RegisterType方法来更改配置Container的方式。首先,修改RandomStockQuoteService的RegisterType方法,传入参数InjectionMember类。Member类是一个基类,在这次试验中主要用到InjectionProperty和InjectionConst 阅读全文

Unity Application Block Hands-on Lab for Enter-Lib 5.0:Lab 1-Using a Unity Container[Translation]

2012-02-15 20:04 by 木木子, 1349 阅读, 2 推荐, 收藏, 编辑
摘要:本实验时间估计:15mins介绍在这次实验中,你将练习使用Unity创建应用程序。主要内容是修改一个简单的证劵报价器应用程序,使该应用程序中的构造函数与属性通过Unity创建。证劵报价器代码这里下载。运行或者调试应用程序。运行结果,打开一个窗口和一个控制台。控制台显示的是应用程序运行时记录的信息。在程序窗口中,你可以输入股票符号,只有字母组成,点击Subscribe按钮,同时选择Refresh,窗口会显示你加入股票的最新信息。窗口会定时更新。运行结果如下:同时,在\bin\Debug目录下还有一个文件,记录着操作信息。应用程序的UML该程序使用Model-View-Presenter(MVP) 阅读全文

Thread 编程:简明(1) - 协作式取消 VS 线程终止

2012-02-02 14:54 by 木木子, 1597 阅读, 2 推荐, 收藏, 编辑
摘要:之前,我就开始关注Thread的知识。看过计算限制异步操作、I/O限制异步操作、Task、Parallel、APM、AsyncEnumerator…也做了相应的笔记。可是,具体Coding起来,还是会感到举步艰难。Why?复杂的知识让我复杂的想问题。上午,看了Jimmy Zhang的如何在30岁前年薪超过30万,说到“我发现越是真理,就越是趋于简单”。也许,最好的是简单的,关键在于,你愿不愿意,能不能这样去做。这里,不讲Thread的基本知识了。就陆续举出几个不同方法实现的例子,比较下,会发现简明才是美。(以下例子中,没有充分考虑到performance hit,请指正!)协作式取消 VS 线 阅读全文

感悟辛卯年,寄语壬辰年

2012-01-20 22:22 by 木木子, 903 阅读, 1 推荐, 收藏, 编辑
摘要:先拜个早年:春节来临之际,希望大家始终坚持以快乐为中心,以家庭和睦、事业顺利为两项基本原则,努力吧美好生活这项工作做到实处,最后预祝大家在龙年里一帆风顺二龙腾飞三羊开泰四季平安五福临门六六大顺七星高照八方来财九九同心十全十美百事亨通千事吉祥万事如意!---------------------------------------------华丽的分割线-------------------------------------------------------------------------------2011,这个变化之年。这年,我们不再是受关照的学生,领着月薪,自给自足;这年,我们不再有 阅读全文

CLR属性、依赖属性与附加属性(WPF)

2011-12-20 21:54 by 木木子, 1149 阅读, 1 推荐, 收藏, 编辑
摘要:笔记大概CLR属性依赖属性附加属性CLR属性public class Human{ private int age; public int Age { get { return this.age; } set { if (value >= 0 && value <= 100) { this.age = value; } else { ... 阅读全文

异步编程相关的APM、Lambda、CCR、AsyncEnumerator(CLR)

2011-12-19 17:43 by 木木子, 499 阅读, 0 推荐, 收藏, 编辑
摘要:传统异步编程操作.NET平台的异步编程方式是APM(Asynchronous Programing Model,异步编程模式)。就是常见的BeginOperation和EndOperation二段式调用,并使用回调函数(AsyncCallback)和异步状态(IAsyncResult)。简单例子:FileStream fs = new FileStream(@"C:\Data.txt", FileMode.Open, FileAccess.Read, FileShare.Read, 8192, FileOptions.Asynchronous);Byte[] data = 阅读全文