相关疑难解决方法(0)

为什么在我的项目中不能等待Task <HttpResponseMessage>?

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

c# asp.net-mvc asynchronous async-await

5
推荐指数
1
解决办法
3019
查看次数

标签 统计

asp.net-mvc ×1

async-await ×1

asynchronous ×1

c# ×1