C#异步委托概述(一)

C#异步委托实例概述

1 引言

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

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

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

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

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

明天介绍异步委托。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值