Приложение запускает несколько потоков с бесконечными циклами, которые выполняют sql и web запросы, при работе используемая память бесконечно увеличивается. Не понимаю из-за чего, предполагаю, что проблема именно в web запросах. Вот снимок кучи и метод который используется в циклах, для выполнения запроса через прокси если тот имеется.

public static async Task<string> GETOrProxy(string url, string[] proxy)
{
string result = null;
try
{
if (proxy[0] != "" && proxy[0] != null)
{
WebProxy Proxy = new WebProxy
{
Address = new Uri($"http://{proxy[0]}:{proxy[1]}"),
BypassProxyOnLocal = false,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(
userName: proxy[2],
password: proxy[3])
};
var httpClientHandler = new HttpClientHandler{Proxy = Proxy};
using var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
var response = await client.GetStringAsync(url);
result = Convert.ToString(response);
httpClientHandler.Dispose();
}
else
{
using var client = new HttpClient();
var response = await client.GetStringAsync(url);
result = Convert.ToString(response);
}
}
catch
{
result = null;
}
return result;
}
несколько потоков с бесконечными цикламине вижу ни одного потока и ни одного цикла у вас в коде. Нужен воспроизводимый пример. Могу сказать только 2 вещи: 1 и то что не надо пересоздавать клиент для одной и той же прокси. А если без прокси, то и вовсе одного клиента хватит. Документацию по HttpClient хоть раз читали? HttpClient is intended to be instantiated once per application, rather than per-use. – aepot May 21 '22 at 10:18