Ich habe einige Code ausgeführt, die einfrieren, wenn Sie greifen und das Fenster verschieben, während es geladen wird. Ich bin nicht sicher, was das Problem ist, aber dachte, dass ich meinen Code posten würde, da ich ziemlich neu in der Arbeit mit async bin/warte und nur frage mich, ob es ein Problem mit meiner Logik gibt. Ich sage nicht, dass das das Problem verursacht, ich habe gerade andere Probleme gesucht und gesehen, dass mit der Einfrieren der Benutzeroberfläche und async/warten oft aufkommt. Jede Hilfe wäre willkommen.Freezing UI mit async/erwarten
private async void BuildChart()
{
DateTime date = DateTime.Today;
using (Database db = new Database())
{
await BuildActual(date, db);
await BuildActual(date.AddDays(1),db);
}
}
private async Task BuildActual(DateTime date, Database db)
{
List<TimeSeries> actualValues = await Task<List<TimeSeries>>.Factory.StartNew(() =>
{
try
{
var wind = DoStuff(date, db);
if (wind == null) return null;
if (wind.Count == 0) return null;
return MakeTimeSeries(wind);
}
catch
{
return null;
}
});
try
{
if (actualValues == null) return;
DoMoreStuff(actualValues);
}
catch (Exception ex)
{
Logger.Log(ex);
}
}
Danke.
Danke für die eingehende Anleitung/Links. Ich fand heraus, dass das Problem nichts mit dem Code zu tun hat, aber die Artikel haben trotzdem geholfen. – Kohins