码迷,mamicode.com
首页 > 编程语言 > 详细

(转).NET 4.5中使用Task.Run和Parallel.For()实现的C# Winform多线程任务及跨线程更新UI控件综合实例

时间:2015-11-03 12:28:48      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:

http://2sharings.com/2014/net-4-5-task-run-parallel-for-winform-cross-multiple-threads-update-ui-demo

 

在C# WINFORM的开发中,难免会遇到多线程的开发以提高程序的执行效率。自己刚才开始在做多线程的开发时也遇到了很多这方面的问题,比如:如何使用并实现多线程功能、跨线程更新UI控件等问题。还记得最初使用的是System.Threading命名空间下的Thread类来实现的:

功能实现上是没有什么问题的,但总觉得使用上不是很方便,于是使用了.NET Framework 4+版本中提供的Parallel在实现多线程的程序功能开发。再结合.NET4.5版本中的Task.Run()的ContinueWith()方法来实现相对更高级的循环任务的多线程任务。

具体的应用场景为:有一个数据量比较大(几百万)的表,需要将这个表中的每条记录取出来用程序进行处理,然后再更新到表中去。目前单线程的处理程序已实现,这时为了达到快速处理数据的目的,我们就需要使用多线程来批量处理这些数据了。但批量处理时我们又不能一次性把表中的所有数据都读出来。所以,我们需要将数据分批少量地取出来,再处理,然后更新回去。

按照以上的应用场景,我做了一个模拟的小实例,实现代码:

程序运行效果图:

技术分享

当然,以上只是个模拟程序,具体的业务和异常等等问题都未考虑太多,只是提供一个解决方案的思路。如果你觉得有什么不妥或者错误,或者是更好的解决方案,欢迎联系反馈。

(转).NET 4.5中使用Task.Run和Parallel.For()实现的C# Winform多线程任务及跨线程更新UI控件综合实例

标签:

原文地址:http://www.cnblogs.com/qianblue/p/4932548.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!