摘要: (英文原文:http://mef.codeplex.com/wikipage?title=Overview&referringTitle=Home)什么是MEF?  Managed Extensibility Framework(MEF)可以很容易的构造可扩展性的应用程序。MEF提供了发现和组合能力,因此你可以选择来加载插件。MEF解决了什么问题?  MEF赠送了一种简单的在运行时扩展问题... 阅读全文
posted @ 2010-03-02 16:24 primeli 阅读(1731) 评论(1) 推荐(0) 编辑
摘要: 使用专用线程来异步执行计算限制的操作  在这一节,我将展示如何创建线程和如何使用异步来执行计算限制的操作。在这开始之前,我强调你要避免使用我给你展示的这种技术。作为代替,你应该尽量使用CLR线程池来异步执行计算限制的操作,我会在26章“计算限制的异步模式”来详细阐述。  然而,有一些情况你可能需要明确创建线程来执行一个特殊的计算限制的操作。典型的,如果你执行代码需要有特殊状... 阅读全文
posted @ 2010-03-02 10:42 primeli 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2010-03-01 23:09 primeli 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 翻译自《CLR via C#, Third Edition》  本章,我将介绍关于线程的基本概念,让大家有个概念,好使用线程。我将解释为什么微软的Windows带来线程的概念、CPU发展趋势、CLR线程和Windows线程的关系、使用线程的系统开销、Windows怎样调度线程,.net framework类暴露那些属性,等等。  这一章在本书的第5部分“线程”,解释Wind... 阅读全文
posted @ 2010-03-01 14:45 primeli 阅读(867) 评论(1) 推荐(0) 编辑
摘要: 导读:现在上班族每天9:00到达办公室,做的第一件事情就是:打开电脑,殊不知这是在变相的伤害自己的皮肤啊。如果不好好保养肌肤,电脑族们,你们受到的伤害就大了!  电脑对皮肤的伤害  这是你最稀松平常的一个工作日:早上9点,你走到办公桌前,放下手提包,打开电脑,开始一天的工作。但你可曾知道,当你按下电脑power键的一刹那,便开启了电脑对你面部皮肤的全面伤害:  1、电脑产生的电磁辐射会直接侵害面部... 阅读全文
posted @ 2010-03-01 14:30 primeli 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1.将香蕉捣碎,加入牛奶,涂在脸上。20分钟后洗净,可以使你的皮肤细腻光滑。2. 把鸡蛋清和蜂蜜搅拌均匀后涂在脸上可以使皮肤光滑并减少皱纹。3. 把姜黄粉末和牛奶混合后涂在脸上可以去除晒斑和减少脸上的汗毛。4.麦片,乳酪和西红柿汁搅拌均匀涂在脸上,20分钟之后再用凉水洗干净,可以帮助恢复晒黑的皮肤,使皮肤有光泽。5.把生土豆片贴在脸上可以减轻雀斑颜色和疤痕。6.黄瓜汁是很棒的紧肤水。把黄瓜汁均匀涂... 阅读全文
posted @ 2010-03-01 14:22 primeli 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 更新众多,所以只选择记录一些感兴趣的更新。一、 异常处理  在System.Runtime.ExceptionServices命名空间下。  1. CorruptedStateExceptions  很多人这样写异常处理:try{ //do something that may fail throw new Exception();}catch(Exception e){ //handle}  这... 阅读全文
posted @ 2010-02-24 16:27 primeli 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 一、 命名参数和可选参数static void Print(string enName, cnName="李飞“, int age=25){...}Print("Prime Li");Print("Prime Li", "李飞");Print("Prime Li", "李飞", 25);Print(enName:"Prime Li");Print(”Prime Li", c... 阅读全文
posted @ 2010-02-24 15:51 primeli 阅读(785) 评论(1) 推荐(1) 编辑
摘要: 当我们读小学的时候,读大学不要钱;当我们读大学的时候,读小学不要钱;我们还没能工作的时候,工作也是分配的;我们可以工作的时候,撞得头破血流才勉强找份饿不死人的工作做;当我们不能挣钱的时候,房子是分配的;当我们能挣钱的时候,却发现房子已经买不起了;当我们没有进入股市的时候,傻瓜都在赚钱;当我们兴冲冲地闯进去的时候,才发现自己成了傻瓜;当我们不到结婚的年龄的时候骑单车就能娶媳妇;当我们到了结婚年龄的时... 阅读全文
posted @ 2010-02-11 10:01 primeli 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.mtime.com/group/bjfilm/discussion/205705/增加運動:當宅男有個非常不好的問題就是老坐著,老在家悶著,臉色是一天比一天差,身體機能是越來越糟糕,有了女朋友就能經常的壓馬路,增加室外活動,對身體健康確實有很大幫助!防止嘴唇破皮:保證有很多人納悶兒交女朋友還能保護嘴唇!當然了!特別是冬天,女孩子吧都愛抹個唇膏什么的,男人麼,不拘小節,嘴... 阅读全文
posted @ 2010-02-09 15:04 primeli 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 年关将至,天冷风寒;几多游子,飘零在外。每逢佳节倍思亲,随着春节的临近,身在异乡的人们,心底或多或少都泛起了淡淡的乡愁。他们或带着一年的收获,或带着漂泊的辛酸,或带着求学的艰难,还有带着骨肉分离,两不相见的伤感和无奈。。。。。。无论身在何处,无论远隔千里,无论荣华富贵,无论奔波贫寒,家,永远都是游子温暖的港湾。在这里,我祝福他们在这个亲情最浓,思念最深的日子里,能够早日洗尽风尘,回家团圆,籍慰相思... 阅读全文
posted @ 2010-02-06 12:31 primeli 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 事情起因:    头发长了,去理发。听朋友说”华仔“这个店不错,于是傻乎乎的跑去理发。店员问我理多少钱的?我就觉得不爽,理发师不应该首先关注钱,而应该关注如何把客户的头发搞好看。应该循循善诱,比如说我觉得你这个脸型配这个发型好看,我们有好几种参考和服务,可以帮你变得更帅,你看你喜欢哪个?这里,也渗透着《销售心理学》,我们作为服务提供商,应该站在客户的角度,为客户谋福,让客户... 阅读全文
posted @ 2010-02-01 22:01 primeli 阅读(386) 评论(5) 推荐(2) 编辑
摘要: 今天的重构没有固定的形式,多年来我使用过不同的版本,并且我敢打赌不同的人也会有不同的版本。该重构适用于这样的场景:switch 语句块很大,并且会随时引入新的判断条件。这时,最好使用策略模式将每个条件封装到单独的类中。实现策略模式的方式是很多的。我在这里介绍的策略重构使用的是字典策略,这么做的好处是调用者不必修改原来的代码。今天的重构没有固定的形式,多年来我使用过不同的版本,并且我敢打赌不同的人也会有不同的版本。该重构适用于这样的场景:switch 语句块很大,并且会随时引入新的判断条件。这时,最好使用策略模式将每个条件封装到单独的类中。实现策略模式的方式是很多的。我在这里介绍的策略重构使用的 阅读全文
posted @ 2010-01-28 11:41 primeli 阅读(1124) 评论(0) 推荐(0) 编辑
摘要: 情景1:我们知道,我们在使用一个对象的时候,它有哪些行为,都是类写死的。当我们想给其增加一个行为(方法)的时候,我们怎么办?只能修改其源代码,新增一个方法了事?可这样做?不是违背了——开放封闭原则了么?情景2:OO三大原则:继承。继承的好处是可以少写代码。可一旦继承树大起来,我们对象就变得肥胖起来。如果按继承设计WPF,那么我们每次New一个Button,就继承了N多属性,但其实用到的只是常用的几个,比如“Button.Context"。一味的用继承,是个坏味道。所以有人提出 使用组合而不用继承。但组合也有局限,组合模式的前提就是需要零部件对象实现某个接口方法,而类内部保持引用,并增 阅读全文
posted @ 2010-01-27 17:49 primeli 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 搜集一些博客好文,这些都是精品文章,有空一定要读的!陆续更新……比较懒,等多了再分类。算法:编程小练习:拆分自然数老赵的自然数分解--少侠之非递归解自然数拆分拆分自然数:纯while实现 (Part 1 - 思路)拆分自然数:纯while实现 (Part 2 - 实现)人文:网络正在改变我们得思维?我在南大的七年暗时间不是书评 :《我是一只IT小小鸟》程序员真情忏悔录新的一年,您是否考虑转型呢?事情永远做不完,却什么都带不走不要迷失在技术的海洋中我们到底该怎么学技术?如何成为一个优秀的技术人员?计算机体系结构与程序性能老赵减肥记:减肥?跟玩儿似的。技术:深入线程,实现自定义的Synchroni 阅读全文
posted @ 2010-01-24 16:05 primeli 阅读(437) 评论(0) 推荐(0) 编辑
摘要: public static class VisualExtension { public static T FindAncestor<T>(this DependencyObject dependencyObject) where T : class { while (dependencyObject != null && !(dependencyObject is T)) { dependencyObject = VisualTreeHelper.GetParent(dependenc... 阅读全文
posted @ 2010-01-24 11:40 primeli 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 有个库,人家写好了,呵呵,咱直接调用就行了,具体怎么实现的我不清楚啊。。分享一些我封装好的扩展方法吧,基于MethodInfo的,名叫FastInvokepublic static void FastInvoke(this MethodInfo methodInfo, object target) { Dynamic<object>.Instance.Procedure.Explicit.CreateDelegate(methodInfo)(target); } public static void FastInvoke<TArg... 阅读全文
posted @ 2010-01-24 11:30 primeli 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 众所周知,反射调用,速度很慢,那怎么办?有什么方法提速么?有啊,这不,我就介绍一下如何利用表达式树来加速反射调用。那为什么表达式树比反射快呢?因为,表达式树可以用Emit生成强类型委托。好吧,让我们看看如何操作:1. 一定要定义强类型委托,尤其是签名 /// <summary> /// Represents a generic delegate to a function. /// </summary> public delegate object LateBoundFunc(object target, object[] arguments); /// <sum 阅读全文
posted @ 2010-01-24 11:21 primeli 阅读(518) 评论(0) 推荐(0) 编辑
摘要: 什么是链式写法?就是Linq那样的,不停的点点点。比如collection.Where(o=>o.id==0).FirstOrDefault();如何实现链式写法?关键就是要Return!1. 链式写法,String.IsNullOrEmpty(),写起来很顺,"".IsNullOrEmpty()而不是String.IsNullOrEmpty("")public static bool IsNullOrEmpty(this string str) { return String.IsNullOrEmpty(str); }2. 链式写法,判断是否.. 阅读全文
posted @ 2010-01-24 11:05 primeli 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 话说WPF的Dispatcher类是这样的方法:public DispatcherOperation BeginInvoke(Delegate method, params object[] args);我们使用的时候不得不这样些:Dispatcher.BeginInvoke((Action)delegate() { //Do something... });不觉得丑么?还要强制转换成Action。可你说,它参数是Delegate,我杂办啊?呵呵,你忘了扩展方法了?如果我们能变成:Dispatcher.BeginInv... 阅读全文
posted @ 2010-01-24 10:55 primeli 阅读(1703) 评论(0) 推荐(0) 编辑
摘要: 拦截异常并用企业库处理:private void AttachUnhandledException() { //这个异常一样要加,否则如果后台线程发生异常,DispatherUnhandledException是扑捉不到的。 AppDomain.CurrentDomain.UnhandledException += (sender, args) => { Exception ex = new Exception(String.Format(LanguageReader.GetValue("Applic... 阅读全文
posted @ 2010-01-23 22:10 primeli 阅读(976) 评论(0) 推荐(0) 编辑
摘要: 谜底很简单,把你的程序的进程优先级从普通设置成高即可,这样OS会多分配CPU时间来运行你的程序,这样就快了。呵呵static App() { Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High; Process.GetCurrentProcess().PriorityBoostEnabled = true; } 阅读全文
posted @ 2010-01-23 21:59 primeli 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 支持多语言的核心无非是,切换Applicaion级别的ResourceDictionary语言文件随意编辑,无非是在程序启动时,加载一下某个资源文件而已。为了支持界面使用多语言,我们自己定义了一个Resource扩展标记。同时,为了防止,用户误将语言资源删除,而引起界面无任何文字的情况,我们内部定义了一个默认的资源文件,这样就不会没有显示了。资源文件的目录结构:Languages目录下有Default.xaml, en-US.xaml, zh-CN.xaml等先上核心读取类LanguageReader:#region Header/** * <pre> * * Work Force 阅读全文
posted @ 2010-01-23 21:55 primeli 阅读(544) 评论(0) 推荐(0) 编辑
摘要: public interface ITransaction : IDisposable { bool IsActive { get; } bool WasCommitted { get; } bool WasRolledBack { get; } void Begin(); void Begin(IsolationLevel isolationLevel); void Commit(); void Enlist(IDbCommand command); void Regist... 阅读全文
posted @ 2010-01-23 21:41 primeli 阅读(526) 评论(0) 推荐(0) 编辑
摘要: public class WeakLazy<T> : IDisposable { private readonly WeakReference _weakReference; private T _instance; private Func<T> _valueFactory; private readonly bool _isWeak; private readonly bool _isThreadSafe; private readonly object _lockObj; public... 阅读全文
posted @ 2010-01-23 21:27 primeli 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 1. 获取数组倒数N个public static IEnumerable<T> GetFromEnd<T>(this T[] array, int count) { for (int i = array.Length - 1; i > array.Length - 1 - count; i--) { yield return array[i]; } }2. Foreach集合,连续做事情。public static IEnumerable<T> ForEach<T>(th... 阅读全文
posted @ 2010-01-23 21:17 primeli 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 白领四大压力源  买房、父母健康、婚姻和孩子教育成为白领四大压力源。  买房成为头号压力源,达46%。留守老家的“空巢父母”无人照顾的问题成为白领第二大压力来源,达38%,是“移民白领”心头之痛。而“剩男、剩女”问题则是未婚白领不快乐的根源之一。  东方早报记者 李祎  最新调查结果显示,主流城市的白领亚健康比例达76%,处于... 阅读全文
posted @ 2010-01-06 13:50 primeli 阅读(309) 评论(1) 推荐(0) 编辑
摘要: 1、一个年轻人,如果三年的时间里,没有任何想法,他这一生,就基本这个样子,没有多大改变了。2、成功者就是胆识加魄力,曾经在火车上听人谈起过温州人的成功,说了这么三个字,“胆子大"。这其实,就是胆识,而拿得起,放得下,就是魄力。3、这个世界,有这么一小撮的人,打开报纸,是他们的消息,打开电视,是他们的消息,街头巷尾,议论的是他们的消息,仿佛世界是为他们准备的,他们能够呼风唤雨,无所不能。... 阅读全文
posted @ 2010-01-04 21:26 primeli 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 高级话题非阻止同步 Wait和Pulse Suspend和Resume 终止线程 第四部分:高级话题非阻止同步早些时候,我们讨论了非常简单的赋值和更新一个字段时需要使用同步的例子。尽管锁总是能满足所需,但是一个排它锁意味着某个线程必须被阻止 ,就连累到系统开销和执行时间的不确定性。.NET framework 非阻止同步结构完成一些简单操作而不用阻止,暂停或等待。它涉及到如何使用 严格地原子操作,... 阅读全文
posted @ 2009-12-26 10:26 primeli 阅读(753) 评论(0) 推荐(0) 编辑
摘要: 使用多线程单元模式和Windows Forms BackgroundWorker类 ReaderWriterLock类 线程池 异步委托 计时器 局部储存 第三部分:使用多线程单元模式和Windows Forms单元模式线程是一个自动线程安全机制,非常贴近于COM——Microsoft的遗留下的组件对象模型。尽管.NET最大地放弃摆脱了遗留下的模型,但很多时候它也会突然出现... 阅读全文
posted @ 2009-12-26 10:25 primeli 阅读(665) 评论(0) 推荐(0) 编辑