博客园 - marshal-m
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=37807
2018-12-02T06:27:18Z
marshal-m
https://www.cnblogs.com/marshal-m/
feed.cnblogs.com
https://www.cnblogs.com/marshal-m/p/3201051.html
C# Winform 跨线程更新UI控件常用方法汇总 - marshal-m
C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常。处理跨线程更新Winform UI控件常用的方法有3种:
1. 通过UI线程的SynchronizationContext的Post/Send方法更新;
2. 通过UI控件的Invoke/BegainInvoke方法更新;
3. 通过设置窗体属性,取消线程安全检查来避免"跨线程操作异常"(非线程安全,建议不使用)。
下文中对以上3种方法应用进行举例说明,希望能对初识C# Winform的同学们有些帮助
2013-07-20T09:38:00Z
2013-07-20T09:38:00Z
marshal-m
https://www.cnblogs.com/marshal-m/
【摘要】C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常。处理跨线程更新Winform UI控件常用的方法有3种:
1. 通过UI线程的SynchronizationContext的Post/Send方法更新;
2. 通过UI控件的Invoke/BegainInvoke方法更新;
3. 通过设置窗体属性,取消线程安全检查来避免"跨线程操作异常"(非线程安全,建议不使用)。
下文中对以上3种方法应用进行举例说明,希望能对初识C# Winform的同学们有些帮助 <a href="https://www.cnblogs.com/marshal-m/p/3201051.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/marshal-m/archive/2013/05/28/3104774.html
《敏捷技能修炼》之意图导向编程 - marshal-m
《敏捷技能修炼——敏捷软件开发与设计的最佳实践》的读书笔记和个人应用总结,让阅读和实践助力我们向高效的设计师进阶。
2013-05-28T13:52:00Z
2013-05-28T13:52:00Z
marshal-m
https://www.cnblogs.com/marshal-m/
【摘要】《敏捷技能修炼——敏捷软件开发与设计的最佳实践》的读书笔记和个人应用总结,让阅读和实践助力我们向高效的设计师进阶。 <a href="https://www.cnblogs.com/marshal-m/archive/2013/05/28/3104774.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/marshal-m/archive/2013/05/28/trap2_chain_delegate.html
.net 委托(委托链)的若干"陷阱" [续]——以委托为载体的观察者模式 - marshal-m
本文通过以委托为载体的观察者模式示例,介绍委托调用时隐含的异常和阻塞陷阱。
2013-05-28T13:17:00Z
2013-05-28T13:17:00Z
marshal-m
https://www.cnblogs.com/marshal-m/
【摘要】本文通过以委托为载体的观察者模式示例,介绍委托调用时隐含的异常和阻塞陷阱。 <a href="https://www.cnblogs.com/marshal-m/archive/2013/05/28/trap2_chain_delegate.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/marshal-m/archive/2013/05/22/observerPattern_detail1.html
简述观察者模式常被忽略的两个细节:异常和阻塞的处理 - marshal-m
本文介绍观察者模式应用的被忽略的两个细节:异常和阻塞的处理,来增强观察者模式的健壮性。
2013-05-22T13:47:00Z
2013-05-22T13:47:00Z
marshal-m
https://www.cnblogs.com/marshal-m/
【摘要】本文介绍观察者模式应用的被忽略的两个细节:异常和阻塞的处理,来增强观察者模式的健壮性。 <a href="https://www.cnblogs.com/marshal-m/archive/2013/05/22/observerPattern_detail1.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/marshal-m/archive/2013/05/21/delegate_example1.html
C# 委托使用举例 - marshal-m
委托允许用户将自己的方法与委托实例关联起来,从而在委托被调用时执行自己的方法。常被用来作为回调函数、固定逻辑中的可变处理过程方法。1. 委托实现回调函数举例 //define callback delegate public delegate void CallBack(string result); //process method public void Processer(string args, CallBack resultHandle) { //get result... ...
2013-05-21T13:18:00Z
2013-05-21T13:18:00Z
marshal-m
https://www.cnblogs.com/marshal-m/
【摘要】委托允许用户将自己的方法与委托实例关联起来,从而在委托被调用时执行自己的方法。常被用来作为回调函数、固定逻辑中的可变处理过程方法。1. 委托实现回调函数举例 //define callback delegate public delegate void CallBack(string result); //process method public void Processer(string args, CallBack resultHandle) { //get result... ... <a href="https://www.cnblogs.com/marshal-m/archive/2013/05/21/delegate_example1.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/marshal-m/archive/2013/05/21/trap1_chain_delegate.html
.net 委托(委托链)的若干"陷阱" - marshal-m
.net 委托提供对方法引用的包装,回调函数、可变处理过程等可以包装在委托对象中作为参数进行传递,为编程提供了巨大的灵活性。而这灵活性,给委托的学习和使用设置了一些陷阱,如“委托链在执行期间可以(根据业务需要)动态增减其中委托实例”、“委托看不见的效率和健壮性”等。再次陆续整理出来与大家一起学习分享。
2013-05-21T06:30:00Z
2013-05-21T06:30:00Z
marshal-m
https://www.cnblogs.com/marshal-m/
【摘要】.net 委托提供对方法引用的包装,回调函数、可变处理过程等可以包装在委托对象中作为参数进行传递,为编程提供了巨大的灵活性。而这灵活性,给委托的学习和使用设置了一些陷阱,如“委托链在执行期间可以(根据业务需要)动态增减其中委托实例”、“委托看不见的效率和健壮性”等。再次陆续整理出来与大家一起学习分享。 <a href="https://www.cnblogs.com/marshal-m/archive/2013/05/21/trap1_chain_delegate.html" target="_blank">阅读全文</a>