Task vs Func vs Action vs Predicate
来源:互联网 发布:c语言科学计数法e 编辑:程序博客网 时间:2024/04/28 14:49
Task 类代表异步操作,使用Task可以方便的实现CPU消耗操作的同步或者异步操作。
public static Task<IList<Task>> TrackedSequence(this TaskFactory factory, params Func<Task> [] functions)
public Task ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[] tasks, Action<Task<TAntecedentResult>[]> continuationAction);
Task 意味着可以不用自己定义线程,直接就能够进行异步操作。
Func 和 Action 的区别很简单,Func 是有返回值的委托, Action 是没有返回值的委托。
Func 通常用在LINQ;
list.Select(x=>x.SomeProperty)
或者过滤:
list.Where(x=>x.SomeValue==someOtherValue)
或者 key selection:
list.Join(otherList, x=>x.FirstKey, y=>y.SecondKey,...)
Action 通常用在 List<T>.ForEach 之类的。为每个 item 执行给定动作。可以用无参数的 Action 来执行类似: Control.BeginInvoke 或者 Dispatcher.BeginInvoke.
Predicate 实际上是 Func<T, bool> 的一个特例。
Task 是线程的高级抽象。 线程是实现并发的底层工具, 不能通过小的并发操作的组合来实现较大并发,且线程过载会极大的消耗内存。 Task 类的目的正是为了解决这些问题。 这也是为什么有了线程之后还需要 Task 类。
0 0
- Task vs Func vs Action vs Predicate
- Func,Action,Predicate
- > VS >
- VS
- vs
- vs
- &&VS&
- VS
- vs
- VS
- VS
- 委托C#(delegate、Action、Func、predicate,Predicate)
- Action和Func和Predicate
- Func,Action,Predicate的区别
- Delegate、Predicate、Action和Func
- RenderPartial vs RenderAction vs Partial vs Action in MVC Razor
- Task.Run vs Task.Factory.StartNew
- Task.Run Vs Task.Factory.StartNew
- 判断出入栈序列的合法性 Stack Sequence
- iOS设计模式(02):单例模式
- 黑马程序员----网络编程 InetAddress
- 《机器学习基石》 第7讲 学习笔记
- 看看三星的两款新Gear智能手表
- Task vs Func vs Action vs Predicate
- 堆(优先队列)的灵活用法
- linux下jdk的安装与配置jdk-6u45-linux-i586.bin
- CareerCup how will you test if the random number generator is generating actual random numbers
- Tomcat webapps 简单部署
- zoj1002
- ios点击背景时关闭键盘
- python 无类的哥顿人游戏
- 坐标旋转原理