任务状态始终为“等待激活”。任务结果=“”。 我不明白为什么......谢谢你的帮助 UI调用GetDocLibs方法。
public class ServerFunctions
{
public static List<BdeskDocLib> GetDocLibs(bool onlyDocLibPerso)
{
string xmlContent = GetXml();
List<BdeskDocLib> result = BdeskDocLib.GetListFromXml(xmlContent, onlyDocLibPerso);
return result;
}
private static String GetXml()
{
Task<String>task=requesteur.Query(dataRequestParam);
task.Wait();
xmlResult = task.Result;
return xmlResult;
}
}
public class DataRequest
{
public Task<String> Query(DataRequestParam dataRequestParam)
{
try
{
WebClient web = new WebClient();
if (!string.IsNullOrEmpty(dataRequestParam.AuthentificationLogin))
{
System.Net.NetworkCredential account = new NetworkCredential(dataRequestParam.AuthentificationLogin, dataRequestParam.AuthentificationPassword);
web.Credentials = account;
}
return web.DownloadStringTaskAsync(dataRequestParam.TargetUri).ConfigureAwait(false);
}
catch(WebException we)
{
MessageBox.Show(we.Message);
return null;
}
}
}
答案 0 :(得分:3)
我的所有方法都需要异步。
public class ServerFunctions
{
public static async Task<List<BdeskDocLib>> GetDocLibs(bool onlyDocLibPerso)
{
string xmlContent = await GetXml();
List<BdeskDocLib> result = BdeskDocLib.GetListFromXml(xmlContent, onlyDocLibPerso);
return result;
}
private async static Task<String> GetXml()
{
Task<String>task=requesteur.Query(dataRequestParam);
task.Wait();
xmlResult = task.Result;
return xmlResult;
}
}