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 @ 2024-08-20 18:45  Cmale  阅读(79)  评论(0编辑  收藏  举报