任务状态:等待激活-DownloadStringTaskAsync -WP8

时间:2014-02-06 14:45:51

标签: c# asynchronous windows-phone-8 task async-await

任务状态始终为“等待激活”。任务结果=“”。 我不明白为什么......谢谢你的帮助 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;
        }
   } 
}     

1 个答案:

答案 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;
    }
}