【发布时间】:2014-06-09 23:24:14
【问题描述】:
在 Windows Phone 8 中,我有方法 public async Task<bool> authentication()。该函数的返回类型是bool,但是当我尝试在if 条件错误中使用它的返回值时,提示无法将Task<bool> 转换为bool。
public async Task<bool> authentication()
{
var pairs = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string> ("user", _username),
new KeyValuePair<string, string> ("password", _password)
};
var serverData = serverConnection.connect("login.php", pairs);
RootObject json = JsonConvert.DeserializeObject<RootObject>(await serverData);
if (json.logined != "false")
{
_firsname = json.data.firsname;
_lastname = json.data.lastname;
_id = json.data.id;
_phone = json.data.phone;
_ProfilePic = json.data.profilePic;
_thumbnail = json.data.thumbnail;
_email = json.data.email;
return true;
}
else
return false;
}
【问题讨论】:
-
不,你不能直接使用它,因为
Task<bool>不是bool。您应该发布您实际遇到问题的代码,但您可能可以这样做bool b = await authentication(); if(b) { ... } -
您的“异步”身份验证方法不会等待任何内容,因此它实际上不是异步的
标签: c# windows-phone-8 task-parallel-library async-await c#-5.0