余分なスレッドを使用せずに、大量のデータの読み取りまたは書き込みが行われているときに、「読み込み中」のラベルなどをユーザーに表示したいと思います。ただし、IOメソッドを呼び出す前にUI要素を変更しようとすると、アプリケーションがしばらくフリーズし、すべての作業が完了した後に「読み込み中」メッセージが表示されます。これは明らかに役に立ちません。IOメソッドを呼び出す前に、UIの変更が適用されて表示されていることを確認するにはどうすればよいですか?
DataSet ds = STT_Import.ImportExcelToDataSet(filePath);
bool result = false;
if (ds != null)
{
int cellCount = ds.GetTotalCellCount();
if (Popup.ShowMessage(string.Format("Your file contains {0} cells. Inserting data will take approximately {1} seconds. Do you want to continue?",
cellCount, CalculateTime(cellCount)), "Confirm", MessageType.Confirm) == MessageBoxResult.Yes)
{
// Tell user the application is working:
StatusLabel.Content = "Writing to database...";
// Do actual work after user has been notified:
result = DB.StoreItems(_currentType, ds);
}
}
答えを探してみましたが、具体的な質問に答えるものが見つからなかったので、以前に質問されたことがある場合は申し訳ありません。