вызов webapi в событии закрытия формы не работает - PullRequest
0 голосов
/ 03 мая 2019

Попытка записи того пользователя, который вышел из системы, когда приложение 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 Ответ

2 голосов
/ 03 мая 2019

Не используйте Async/Await для этого вызова. Приложение заканчивается до завершения запроса в фоновом потоке.

Сделайте синхронный вызов. Таким образом, он будет выполняться в потоке основного пользовательского интерфейса, который должен будет ждать ответа webapi, прежде чем процесс будет остановлен.

...