C# Task与Task


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);
        }

运行结果:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM