Dynamiczna aktualizacja danych

0

Witam
Chciałbym aby w mojej aplikacji pola tekstowe aktualizowały się wraz ze zmianą danych na serwerze. Napisałem taki kod:

        async void Load()
        {
            while (true)
            {
                await LoadJson();
            }
            
        }
        public async Task LoadJson()
        {
            try
            {
                HttpClient httpClient = new HttpClient();
                var result = await httpClient.GetStringAsync("http://localhost/user.json");
                text.Text = result;

            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }
        } 

Program działa tak jakbym chciał ale niestety na wykresie Ramu w Visual Studio wykres cały czas rośnie :(
Możecie mi poradzić jak to poprawnie zrobić ?

1

Zdajesz sobie sprawę, że zasypujesz serwer cała masą żądań i po nieługiej chwili zostaniesz zbanowany i nie będziesz miał dostępu do tego serwera? Odpal to w jakimś timerze i wywołuj metodę LoadJson co np 30 sekund.

1

A przez jaki czas patrzyłeś na ten wykres? Bo po chwili GC powinien zwolnić pamięć.
Teraz co każde wywołanie metody tworzysz nowy obiekt HttpClient, możesz go dać jako pole klasy i używać ciągle tego samego.

0

Dzięki za pomoc. Ustawiłem przerwę w łączeniu co 20s i przeniosłem HttpClient do zmiennej klasy teraz ram jest w miarę na stałej pozycji :)

0

Myślę, że w przypadku interwału 20s mógłbyś się również zainteresować keep-alive.

https://en.wikipedia.org/wiki/HTTP_persistent_connection

1 użytkowników online, w tym zalogowanych: 0, gości: 1