在表单关闭事件中调用webapi无效

时间:2019-05-03 02:51:59

标签: c# winforms asp.net-core-webapi formclosing

试图捕获Winform应用程序关闭时注销的用户。从客户端表单中,触发了orm_Closing事件,但HttpClient.PostAsync调用停止了,并且webapi根本没有收到该帖子。

using (var client = new HttpClient(handler))
        {
            var content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");

            var response = await client.PostAsync(requestUrl, content);
            response.EnsureSuccessStatusCode();

            var responseAsString = await response.Content.ReadAsStringAsync();
            return JsonConvert.DeserializeObject<T>(responseAsString);
        }

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

请勿使用Async/Await进行通话。在后台线程上的请求完成之前,应用程序结束。

使其成为同步呼叫。这样,它将在Main UI线程上执行,该线程必须等待webapi响应才能终止进程。