我有一个针对.NET 4框架的项目,我创建了一个更新数据库中数据的方法.该方法本身也使用标志(runAsync)来确定它是否应该异步运行.我收到一个'System.Threading.Tasks.Task <HttpResponseMessage>不等待'的错误,但我在另一个应用程序中使用相同的代码,它工作正常.我做错了什么,或者我错过了什么让这个工作?
这是代码:
public static async Task<object> UpdateData(SecureData data, string userAgent, bool runAsync)
{
    object result;
    try
    {
        using (HttpClient client = new HttpClient())
        {
            client.BaseAddress = new Uri(_configUri);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            HttpResponseMessage response = runAsync
                                                ? await client.PutAsJsonAsync(String.Format("api/securedata/update/{0}", data.Token), data)
                                                : client.PutAsJsonAsync(String.Format("api/securedata/update/{0}", data.Token), data).Result;
            result = runAsync
                            ? await response.Content.ReadAsAsync<object>()
                            : response.Content.ReadAsAsync<object>().Result;
            response.EnsureSuccessStatusCode();
        }
    }
    catch (HttpRequestException ex)
    {
        throw new HttpRequestException(ex.Message, ex.InnerException);
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)