从项目外包的角度出发,分析为什么要有委托,异步,多线程,事件,委托多播这些概念,之间怎么联系
2009-02-05 00:45
423 查看
为什么要有委托,异步,多线程,事件,委托多播这些概念,之间怎么联系。看了这个你就可以明白了。
我做一个项目,我做这个项目的进度,还有做完的结果都得广而告之。
我们来关注这个项目的效率
最简单的,我自己做,自己报告进度,自己报告结果。但是什么事情都是一个人做,这样是很慢的。
所以现在有个很有名的词,叫项目外包。
外包其实就是找个代理人,让这个代理人帮你做事情的意思。
那么我把我要做的事情委托出去,就要找个委托人。
社会中一个新的职业阶层出来从来都不是这么简单的。
现在出来了委托人(做外包的)。那么对委托人的管理,委托人的功能接口,委托人的工作进度,委托人的不同等级导致出来很多不同的概念。
比如有些委托人很初级,是毕业生。很多事情能做,但是你得看着。(同步委托)
这些初级的委托人,因为刚毕业有很多棱角,虽然也给你办事情,但是喜欢搞个自己的标签。(自己的返回值和参数)
初级委托人还有分类,最最初级的把任务还不能完全交给他,得看着。所以这个就是同步。虽然事情不用自己做了,但是还得看着,我不能走开了。
有些初级委托人还好一点,把任务接口按他的要求定义好后,交给它,它自己就能做了。这就是异步的意思,MyDelegate.BeginInvoke,做完之后兴许还给我一报告。用回调函数IAsyCallback弹出这个报告来。我自己可以走开了,因为他做好后就会想办法告诉我的。
这些初级委托人还是会占用我一点点地盘的。也就是系统自己开辟的线程。
有这么多委托人怎么办,我要对他们进行管理的(统一的void返回值和EventArgs参数)。不同的委托人负责自己的工作,不能把整个项目给搞坏了,每个人都有一块。所以只能用我规定的方式来注册,+=,或者-=.事件机制,委托多播。
好像关有委托人还不够,毕竟他们在我的地盘上工作也快不了多少,虽然好一点的能交互工作后自己运行,但是还是占我们的地盘嘛。
那么怎么办,那么还有这么一类型的委托人是大公司的,比较牛,他们老板说,我们公司有经验,有自己的楼,交给我们做吧,你只管交接就可以了。所以大公司在自己的楼自己的时间里(自定义Thread)干活,当然大公司里面的委托人也有初级和不初级的,所以有时候也得看着和偶尔检查的(纯多线程/多线程异步),外包一段时间后,我发现是上他们场子上看着的外包方式是效率高的(纯多线程)。偶尔检查(多线程异步)还没那么好,因为看的时候是叫他们上我这边来检查,有时候可能我又有其他的事情什么的反而浪费他们的时间等,或者反之。总之,如果项目够大,我还是考虑直接派QC到外包场子上的方式去外包(纯多线程)。小项目,可能就那么几天,在我楼里做也无所(异步)。
我做一个项目,我做这个项目的进度,还有做完的结果都得广而告之。
我们来关注这个项目的效率
最简单的,我自己做,自己报告进度,自己报告结果。但是什么事情都是一个人做,这样是很慢的。
所以现在有个很有名的词,叫项目外包。
外包其实就是找个代理人,让这个代理人帮你做事情的意思。
那么我把我要做的事情委托出去,就要找个委托人。
社会中一个新的职业阶层出来从来都不是这么简单的。
现在出来了委托人(做外包的)。那么对委托人的管理,委托人的功能接口,委托人的工作进度,委托人的不同等级导致出来很多不同的概念。
比如有些委托人很初级,是毕业生。很多事情能做,但是你得看着。(同步委托)
这些初级的委托人,因为刚毕业有很多棱角,虽然也给你办事情,但是喜欢搞个自己的标签。(自己的返回值和参数)
初级委托人还有分类,最最初级的把任务还不能完全交给他,得看着。所以这个就是同步。虽然事情不用自己做了,但是还得看着,我不能走开了。
有些初级委托人还好一点,把任务接口按他的要求定义好后,交给它,它自己就能做了。这就是异步的意思,MyDelegate.BeginInvoke,做完之后兴许还给我一报告。用回调函数IAsyCallback弹出这个报告来。我自己可以走开了,因为他做好后就会想办法告诉我的。
这些初级委托人还是会占用我一点点地盘的。也就是系统自己开辟的线程。
有这么多委托人怎么办,我要对他们进行管理的(统一的void返回值和EventArgs参数)。不同的委托人负责自己的工作,不能把整个项目给搞坏了,每个人都有一块。所以只能用我规定的方式来注册,+=,或者-=.事件机制,委托多播。
好像关有委托人还不够,毕竟他们在我的地盘上工作也快不了多少,虽然好一点的能交互工作后自己运行,但是还是占我们的地盘嘛。
那么怎么办,那么还有这么一类型的委托人是大公司的,比较牛,他们老板说,我们公司有经验,有自己的楼,交给我们做吧,你只管交接就可以了。所以大公司在自己的楼自己的时间里(自定义Thread)干活,当然大公司里面的委托人也有初级和不初级的,所以有时候也得看着和偶尔检查的(纯多线程/多线程异步),外包一段时间后,我发现是上他们场子上看着的外包方式是效率高的(纯多线程)。偶尔检查(多线程异步)还没那么好,因为看的时候是叫他们上我这边来检查,有时候可能我又有其他的事情什么的反而浪费他们的时间等,或者反之。总之,如果项目够大,我还是考虑直接派QC到外包场子上的方式去外包(纯多线程)。小项目,可能就那么几天,在我楼里做也无所(异步)。
相关文章推荐
- 通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系
- 通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系
- 通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系
- 通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系
- 从.net角度分析 异步和多线程
- C#多线程-不同线程之间通过事件委托封送调用方法(转)
- c#中关于delegate、委托、事件之间的联系、关系
- 委托————窗体之间传值练习------引出事件的概念
- 第二十三节: EF性能篇(三)之基于开源组件 Z.EntityFrameWork.Plus.EF6解决EF性能问题 第四节:一些指令总结 定时调度系列之Quartz.Net详解 第十七节:易混淆的概念(静态和非静态、拆箱和装箱) 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)
- 【Tomcat】JVM,Tomcat,Servlet,Tomcat中的应用。彻底弄懂这些概念之间的联系
- C#多线程-不同线程之间通过事件委托封送调用方法
- 从“分析”的角度谈OLAP、数据挖掘、统计分析三者之间的区别和联系
- 经典Demo(委托、事件、多线程、异步)
- 一个关于委托、事件、多线程、异步的Demo
- NET中级课--浅谈委托,事件,异步调用,回调等概念
- C#多线程-不同线程之间通过事件委托封送调用方法
- PHP数组排序函数合集 以及它们之间的联系分析
- C#综合揭秘——深入分析委托与事件
- Cassandra数据分布之3几个概念之间的联系
- 为什么做事会拖沓,分析拖沓的习惯是怎么炼成的!