2013年7月20日

C# Winform 跨线程更新UI控件常用方法汇总

摘要: C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常。处理跨线程更新Winform UI控件常用的方法有3种: 1. 通过UI线程的SynchronizationContext的Post/Send方法更新; 2. 通过UI控件的Invoke/BegainInvoke方法更新; 3. 通过设置窗体属性,取消线程安全检查来避免"跨线程操作异常"(非线程安全,建议不使用)。 下文中对以上3种方法应用进行举例说明,希望能对初识C# Winform的同学们有些帮助 阅读全文

posted @ 2013-07-20 17:38 marshal-m 阅读(80660) 评论(10) 推荐(23) 编辑

2013年5月28日

《敏捷技能修炼》之意图导向编程

摘要: 《敏捷技能修炼——敏捷软件开发与设计的最佳实践》的读书笔记和个人应用总结,让阅读和实践助力我们向高效的设计师进阶。 阅读全文

posted @ 2013-05-28 21:52 marshal-m 阅读(836) 评论(0) 推荐(0) 编辑

.net 委托(委托链)的若干"陷阱" [续]——以委托为载体的观察者模式

摘要: 本文通过以委托为载体的观察者模式示例,介绍委托调用时隐含的异常和阻塞陷阱。 阅读全文

posted @ 2013-05-28 21:17 marshal-m 阅读(531) 评论(1) 推荐(0) 编辑

2013年5月22日

简述观察者模式常被忽略的两个细节:异常和阻塞的处理

摘要: 本文介绍观察者模式应用的被忽略的两个细节:异常和阻塞的处理,来增强观察者模式的健壮性。 阅读全文

posted @ 2013-05-22 21:47 marshal-m 阅读(2299) 评论(0) 推荐(1) 编辑

2013年5月21日

C# 委托使用举例

摘要: 委托允许用户将自己的方法与委托实例关联起来,从而在委托被调用时执行自己的方法。常被用来作为回调函数、固定逻辑中的可变处理过程方法。1. 委托实现回调函数举例 //define callback delegate public delegate void CallBack(string result); //process method public void Processer(string args, CallBack resultHandle) { //get result... ... 阅读全文

posted @ 2013-05-21 21:18 marshal-m 阅读(1036) 评论(1) 推荐(0) 编辑

.net 委托(委托链)的若干"陷阱"

摘要: .net 委托提供对方法引用的包装,回调函数、可变处理过程等可以包装在委托对象中作为参数进行传递,为编程提供了巨大的灵活性。而这灵活性,给委托的学习和使用设置了一些陷阱,如“委托链在执行期间可以(根据业务需要)动态增减其中委托实例”、“委托看不见的效率和健壮性”等。再次陆续整理出来与大家一起学习分享。 阅读全文

posted @ 2013-05-21 14:30 marshal-m 阅读(672) 评论(1) 推荐(1) 编辑

导航