Tôi có một số mã đang chạy sẽ đóng băng nếu bạn lấy và di chuyển cửa sổ trong khi đang tải. Tôi không chắc chắn vấn đề là gì nhưng tôi nghĩ rằng tôi sẽ đăng mã của tôi kể từ khi tôi khá mới làm việc với async/await và chỉ cần tự hỏi nếu có một số vấn đề với logic của tôi. Tôi không nói điều này gây ra vấn đề, tôi vừa tìm kiếm và thấy các vấn đề khác với giao diện người dùng bị đóng băng và không đồng bộ/chờ đợi thường xuyên xuất hiện. Bất kỳ trợ giúp sẽ được đánh giá cao.Giao diện người dùng đóng băng với async/await
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);
}
}
Cảm ơn.
Cảm ơn các hướng dẫn/liên kết khởi động chuyên sâu. Tôi thực sự phát hiện ra vấn đề không liên quan đến mã nhưng các bài báo đã giúp đỡ bất kể. – Kohins