摘要:
不管我们使用thread,threadPool,task,还是APM异步,本质都是在使用多线程。对于新手来说,不太敢用多线程的原因,就我个人的体验来说,就是对多线程的异常捕获方式或时机缺乏了解,而一旦出现异常没有捕获,将会带来难以发现的bug,进而造成系统崩溃。而多线程本身也不是一朝一夕就能学好的,必须不断的去学习总结,所以我个人认为你要用一种线程模型,首先要对它有足够的了解,特别是对异常的捕获。如果你没有完全的把握,最好在实际开发中谨慎的用多线程。1,APM异步编程模型。采用BeginXXX和EndXXX方法。关于异常的捕捉,对于刚调用BeginXXX抛出的异常,异步操作可能还没有进入队列。 阅读全文
推荐排行榜
非UI线程更新UI界面的各种方法小结
2012-08-18 15:58 by xiashengwang, 5548 阅读, 收藏,
摘要:
我们知道只有UI线程才能更新UI界面,其他线程访问UI控件被认为是非法的。但是我们在进行异步操作时,经常需要将异步执行的进度报告给用户,让用户知道任务的进度,不至于让用户误认为程序“死掉了”,特别是对于Winform,WPF等客户端程序尤为重要。 那么我们要探讨的就是如何让非UI的任务线程更新UI界 阅读全文
颜色分段显示,线性填充的一个Demo
2012-08-02 17:51 by xiashengwang, 1765 阅读, 收藏,
摘要:
1,指定一个开始颜色,一个结束颜色,进行填充。2,生成指定数量的,这两个颜色中间的过渡色,这个对地图表示等功能需要分段颜色表示的很有用。效果图:先看第一个功能,填充渐变的颜色:主要就是利用LinearGradientBrush这个画刷 lblStartColor.Click += new EventHandler(lblColor_Click); lblEndColor.Click += new EventHandler(lblColor_Click); void lblColor_Click(object sender, EventA... 阅读全文
Linq学习之旅——Linq to Objects之延期执行方法(下篇)
2012-07-29 22:18 by xiashengwang, 1159 阅读, 收藏,
摘要:
目录1,Intersect 方法2,Except方法3,Range方法4,Repeat方法5,Empty方法6,DefaultIfEmpty方法7,Cast方法8,OfType方法9,AsEnumerable方法 本篇继续学习剩余的延期执行方法。1,Intersect 方法 Intersect 方法用于生成两个序列的交集。 string[] names = { "郭靖", "李莫愁", "欧阳晓晓", "黄蓉", "黄药师" }; string[] names2 = { "郭靖&quo 阅读全文
C# 3.0 新特性概览
2012-07-23 22:33 by xiashengwang, 616 阅读, 收藏,
摘要:
1. 隐式类型局部变量(Implicitly Typed Local Variables)隐式类型局部变量的具体类型取决于初始化它的表达式。在一个局部变量声明时,前面加一个var关键字,这个局部变量就被叫做隐式类型局部变量。例如: var i = 0; var s = "Hello"; var d = 1.0; var numbers = new int[] { 2, 4, 7, 8 }; var order = new Dictionary<string, string>();上... 阅读全文
浙公网安备 33010602011771号