私はC#
Task
とスレッドを初めて使用しています。C#タスクを更新する
私は以下のようなコードがあります: -
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
はサードパーティ製のライブラリのイベントハンドラです。
通常、Dispatcherを呼び出して、特定のスレッドで呼び出す必要があるかどうかを確認するだけです。しかし、あなたのコードがデッドロックを引き起こさないと確信しています。 –