Когда я запускаю этот код, я получаю System.OutOfMemoryException: «Недостаточно памяти». когда он пытается загрузить новую форму. Это ошибка, которую я получаю. В System.Drawing.dll произошло необработанное исключение типа «System.OutOfMemoryException».
Я несколько раз пытался решить эту проблему самостоятельно, но получаю то же самое. ошибка каждый раз. В отладчике написано, что используется 37 МБ памяти. Это код всех соответствующих функций
public static async Task RetrieveAll()
{
using (var handler = new LoggingHttpClientHandler())
using (var client = new HttpClient(handler))
{
client.Timeout = TimeSpan.FromSeconds(5);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Console.WriteLine("Sending request");
var response = await client.GetAsync($"https://apex.oracle.com/pls/apex/student12345/Meni/Get");
Console.WriteLine("Request sent. Awaiting response...");
if (Convert.ToInt32(response.StatusCode) == 200)
{
JObject menijson = JObject.Parse(await response.Content.ReadAsStringAsync());
JArray meniji = (JArray)menijson["items"];
List list = meniji.ToObject();
foreach (Meni meni in list)
{
await meni.dodajjela();
}
return list;
}
else
{
MessageBox.Show("Greška pri prustupanju popisa menija", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
}
}
private async Task dodajjela()
{
using (var handler = new LoggingHttpClientHandler())
using (var client = new HttpClient(handler))
{
client.Timeout = TimeSpan.FromSeconds(5);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Console.WriteLine("Sending request");
var response = await client.GetAsync($"https://apex.oracle.com/pls/apex/studen ... .id_menija}");
Console.WriteLine("Request sent. Awaiting response...");
if (Convert.ToInt32(response.StatusCode) == 200)
{
JObject jelajson = JObject.Parse(await response.Content.ReadAsStringAsync());
JArray jela = (JArray)jelajson["items"];
foreach (var jel in jela)
{
var resp = await Jela.Retrieve(jel["idjela"].ToString());
this.jelas.Add(resp);
}
}
}
}
public static async Task Retrieve(string id)
{
using (var handler = new LoggingHttpClientHandler())
using (var client = new HttpClient(handler))
{
client.Timeout = TimeSpan.FromSeconds(5);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Console.WriteLine("Sending request");
var response = await client.GetAsync($"https://apex.oracle.com/pls/apex/studen ... elo?je={id}");
Console.WriteLine("Request sent. Awaiting response...");
if (Convert.ToInt32(response.StatusCode) == 200)
{
JObject jelajson = JObject.Parse(await response.Content.ReadAsStringAsync());
jelajson.Remove("links");
return CreateObj(jelajson);
}
return null;
}
}
private static Jela CreateObj(JObject objekt)
{
Image slikajelo = null;
using (WebClient client = new WebClient())
{
byte[] slikabiteovi = client.DownloadData($"https://apex.oracle.com/pls/apex/studen ... ToString()}");
using (MemoryStream ms = new MemoryStream(slikabiteovi))
{
slikajelo = Image.FromStream(ms);
}
}
Jela jelo = new Jela
{
id_jela = objekt.Property("id_jelo").Value.ToString(),
slika= slikajelo,
ime_jela= objekt.Property("ime_jela").Value.ToString()
};
return jelo;
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... emory-i-fa