저는 C#
Task
을 처음 사용하고 스레딩하고 있습니다.C# UI 업데이트 작업
나는 코드 아래와 같이있다 : -
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();
}));
});
}
이 코드가 정확인지 아닌지 확실하지 않다. 어쨌든 교착 상태가 발생할 수 있다고 생각합니까?
작업에서 UI를 어떻게 업데이트 할 수 있습니까? UpdateSales
은 타사 라이브러리의 이벤트 처리기이기 때문에 async/await
을 사용하지 않습니다.
일반적으로 Dispatcher를 호출하고 특정 스레드에서 호출해야하는지 확인하기 만하면됩니다. 하지만 당신의 코드가 교착 상태를 일으키지 않을 것이라고 확신합니다. –