等待任务正在永远或根本不工作

时间:2014-10-09 11:36:18

标签: c# .net asynchronous async-await task

我一定错过了什么,

var t2 = new Task<bool>(() =>
         {
             return UserName == "Admin";
         });

bool x = await t2;

bool x = await t2;永远不会完成,x没有收到任何内容(当我确定UserName等于“Admin”时),不确切知道发生了什么,请某人可以向我解释。

2 个答案:

答案 0 :(得分:7)

你还没有开始这项任务。 await会等到它完成,但如果它没有开始就永远不会完成。

也许您想要Task.Run,它会创建并启动任务? (我认为实际上,你的任务更有用......)

答案 1 :(得分:0)

你必须开始任务,但最好使用任务工厂

Task.Factory.StartNew(() =>
        {
            return UserName == "Admin";
        });

bool x = await t2;

或使用Task.Run()

Task.Run vs Factory.StartNew