Виснет форма при GET запросе

100
08 июля 2021, 19:20

Подскажите человеку, не очень разбирающемуся в запросах. У меня есть несколько, подобных этим, запросов.

public string Get_Task_Instance(string id)
    {
        WebRequest rq = WebRequest.Create("адрес" + id);
        rq.Headers.Add("Authorization: Basic " + auth_base64("login:pass"));
        rq.Method = "GET";
        HttpWebResponse sq = (HttpWebResponse)rq.GetResponse();
        using (StreamReader stream = new StreamReader(sq.GetResponseStream(), Encoding.UTF8))
        {
            get_tasks_instance = stream.ReadToEnd();
        }
        if (sq.StatusCode.ToString() == "OK") return get_tasks_instance;
        else return "ERROR";
    }

public void Complete_Task_Ozn(string id)
    {
            WebRequest rq = WebRequest.Create("адрес" + id + "/complete");
            rq.Headers.Add("Authorization: Basic " + auth_base64("login:pass"));
            rq.Method = "POST";
            string data = "{  }";
            byte[] bytearray = System.Text.Encoding.UTF8.GetBytes(data);
            rq.ContentType = "application/json";
            rq.ContentLength = bytearray.Length;
            using (Stream dS = rq.GetRequestStream())
            {
                dS.Write(bytearray, 0, bytearray.Length);
            }

    }

Проблема в том, что, если их использовать, то на некотором использовании (более 4-ех одновременно) приложение виснет, под отладкой приложение начинает виснуть на этой строке:

HttpWebResponse sq = (HttpWebResponse)rq.GetResponse();

Подскажите пожалуйста, что делать. Спасибо.

Answer 1

Думаю, форма виснет т.к. ты ждешь ответа с сервера, что блокирует твою форму.

Делай асинхронный запрос и сами методы сделай асинхронными.

Или делай вызов метода в НЕ-UI потоке.

READ ALSO
Аналоги SPA на wasm

Аналоги SPA на wasm

Есть ли аналоги Blazor (фреймворки для создания SPA приложений на WebAssembly)?

81
Как хранить диапазоны значений?

Как хранить диапазоны значений?

В Excel-файле хранятся диапазоны значенийЕсли входное значение в промежутке между 0 и 200, то на выходе мы должны получить 0,28

120
pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8F\\xB3\\xEF\\xB8…'

pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8F\\xB3\\xEF\\xB8…'

Всех приветствую ! Я парсю этот новостной ресурсПосле чего спарщенные данные(заголовок,дата,текстовой контент) заношу в БД

117