我有一些代碼運行,將凍結,如果你抓住並移動窗口,而它正在加載。我不確定是什麼問題,但認爲我會發布我的代碼,因爲我在與async/await合作時很新,只是想知道我的邏輯是否有問題。我並不是說這是導致問題的原因,我剛剛搜索並發現了UI凍結和異步/等待經常出現的其他問題。任何幫助,將不勝感激。凍結與異步/用戶界面
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);
}
}
謝謝。
感謝您的深入入門指導/鏈接。我實際上發現問題與代碼無關,但文章確實有幫助。 – Kohins