我刚接触 C#
的 Task
和线程。
我有以下代码:
public void UpdateSales(object sender, EventArgs args)
{
Task.Run(() =>
{
// Some code Create Collection ...
// Some code with business logic ..
// Below code is to update UI
// is it safe to update UI like below
saleDataGrid.Dispatcher.Invoke((Action) (() =>
{
saleDataGrid.ItemsSource = currentCollection;
saleDataGrid.Items.Refresh();
}));
});
}
我不确定这段代码是否正确。我认为无论如何都可能发生死锁现象?
请问您如何从Task中更新UI呢?由于UpdateSales
是第三方库的事件处理程序,因此我没有使用async/await
。