C#异步委托概述(一)

来源:互联网 发布:前端开发必备软件 编辑:程序博客网 时间:2024/05/21 21:42

C#异步委托实例概述

1 引言

曾经我做过一个项目,这个项目里面有一个计费功能,计费功能要对当月所有的费用进行计算,由于数据量很大,计算过程也有点复杂,所以用户在执行计费程序时,整个计算机就会出现“假死”的情况。在面对这种情况时,如果客户在单击“计费”按钮后,“计费”在“后台”进行,而软件的其他功能不受影响,当计费完毕,程序弹出提示窗口告知用户计费完毕,就能让软件有良好的使用效果。

因此,我们可以想到是多线程处理,也就是把耗时久的操作用另外的线程放在“后台”处理,主功能不受影响。在这里,我想还是先介绍一下什么是多线程吧。线程是执行程序的实际单位,而进程是组织线程的一个数据结构,它并没有执行程序的能力,一般来说,我们会把单线程或者主要执行的线程称为主线程,其他的处理线程称为线程。Windows操作系统是多任务多线程的操作系统,并且VC++VC#都支持多线程开发。

但是线程存在同步和异步的问题,关于同步和异步,网上有一个经典的说法,我也曾经转载在我的博客上,在这里还是重新提一下吧。例子如下:

离你很远的地方有个很漂亮的女网友,你想知道她到底对你如何,你通过邮政礼仪,寄给她一支玫瑰(相当于异步调用)。因为回执要等很多天,所以,你这些天不必整天傻等回执,可以照样吃饭工作(处理些简单的事务),当然,如果你这些天又泡到个MM,这时你就要选择,如果也用异步的方法,当然没问题,因为哪个回 执先回来,先处理那个,但如果你对后面这个MM采用同步方式,那你只能解决掉这个同步的MM后,才能处理前面那个回执,不管那个回执何时到达。  

这和多线程也有点不同,多线程是两个色狼泡两个MM,自己泡自己的。

明天介绍异步委托。

 

原创粉丝点击