C# Task与Action和Func

在C#中,Task是用于表示异步操作的类型。ActionFunc<>是用于定义无返回值的方法和有返回值的方法委托。

1.使用Action委托

Action委托是无返回值的,你可以使用它来异步执行一个方法。

Action action = () => MethodWithNoReturnValue();
Task.Run(action);

2.使用Func<>委托

Func<>委托是有返回值的,你可以使用它来异步执行一个有返回值的方法。

Func<string> func = () => MethodWithReturnValue();
Task<string> task = Task.Run(func);

3.使用Task.Factory.StartNew

Task.Factory.StartNew方法可以接受ActionFunc<>委托来创建Task

Task.Factory.StartNew(() => MethodWithNoReturnValue());
Task.Factory.StartNew<string>(() => MethodWithReturnValue());

4.使用Task.Run

Task.Run方法也可以接受ActionFunc<>委托来创建Task

Task.Run(() => MethodWithNoReturnValue());
Task.Run<string>(() => MethodWithReturnValue());

5.使用Task.ContinueWith

Task.ContinueWith方法可以在一个Task完成后,启动另外一个Task

Task task = Task.Run(() => MethodWithNoReturnValue());
task.ContinueWith(t => MethodWithNoReturnValue());
 
Task<string> taskWithReturnValue = Task.Run(() => MethodWithReturnValue());
taskWithReturnValue.ContinueWith(t => MethodWithReturnValue(t.Result));

 

posted @   Cmale  阅读(169)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示