首页 新闻 搜索 专区 学院

Task.Run(Func<Task<int>>)执行获取不到结果

0
[已解决问题] 解决于 2016-03-31 23:42
private async static void Test2()
        {
            Func<object, int> func = obj => { return int.Parse(obj.ToString()) + 1; };
            Task<int> t7 = Task.Run<int>(() =>
            {
                return new Task<int>(func, 1, TaskCreationOptions.None);
            }, CancellationToken.None);
            Console.WriteLine("t7.Result:{0}", await t7);
        }


这段代码拿不到执行结果,找不到原因.

哑吧湖大水怪的主页 哑吧湖大水怪 | 初学一级 | 园豆:13
提问于:2015-04-25 17:26
< >
分享
最佳答案
0

Test2的签名是有问题的。

应该改成这样:private async static TaskTest2()

然后这样调用:await Test2();

奖励园豆:5
zhoumy | 小虾三级 |园豆:603 | 2015-04-27 09:43
        static void Main(string[] args)
        {
            Task.WaitAll(Test2());
            Console.Read();
        }

        private static async Task Test2()
        {
            Func<object, int> func = (obj) => int.Parse(obj.ToString()) + 1;

            var t7 = Task.Run<int>(() => func("11"));

            Console.WriteLine("t7.Result:{0}",  (await t7));
        }
zhoumy | 园豆:603 (小虾三级) | 2015-04-27 10:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册