Task<T>:任務返回結果類型為T的Task,Task<T>繼承Task,Task<T>有Result屬性,Result類型為T,而Task無Result屬性
Task<T>類似於C#內置的兩個委托:有返回值的Func,如Func<T1,T2,T3>代表參數值類型為T1和T2返回值類型為T3的委托和無返回值的委托Action,如Action<T1,T2,T3>代表參數類型為T1、T2和T3的委托
示例代碼:
public static void Main(string [] args) { var temp=Test(); Console.Read(); } public async static Task Test() { var task1 = TaskTTest("task1"); var task2 = AsyncTest("asyncTask"); string task1_res = task1.Result; // Task<string>返回string結果 string task2_res = await AsyncTest("task2"); Console.WriteLine($"task1_res:{task1_res}, task2_res:{task2_res}"); } public static Task<string> TaskTTest(string taskName) { return Task.Run(() => TaskMethod(taskName)); } public async static Task<string> AsyncTest(string taskName) { await Task.CompletedTask; return TaskMethod(taskName); }
運行結果: