C# 创建任务

下面从同步方法 Greeting 开始,该方法等待一段时间后,返回一个字符串:.

static string Greeting(string name){  TraceThreadAndTask($"running {nameof(Greeting)}");   Task.Delay(3000).Wait();   return $"Hello, {name}";  }
定义方法 GreetingAsync,可以使方法异步化。基于任务的异步模式指定,在异步方法名后加上 Async 后缀,并返回一个任务。异步方法 GreetingAsync 和同步方法 Greeting 具有相同的输入参数,但是它返回的是 Task<string>。Task<string> 定义了一个返回字符串的任务。一个比较简单的做法是用 Task.Run 方法返回一个任务。泛型版本的 Task.Run<string>() 创建一个返回字符串的任务。由于编译器已经知道实现的返回类型(Greeting返回字符串),因此还可以使用 Task.Run() 来简化实现代码:
static Task<string> GreetingAsync(string name) =>  Task.Run<string> (() =>  {    TraceThreadAndTask($"running {nameof(GreetingAsync)}");    return Greeting(name);  });