我有一个针对.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)