我在我的項目中提供了一個可以提供忙碌指示符(旋轉圓圈)的控件。我希望它在用戶選擇一個文件來將數據加載到數據網格中時運行。直到我的數據網格被填充爲止,忙指標纔會顯示出來。如何在檢索數據時顯示忙碌指示符?我相信我應該使用一個線程,但我不太瞭解他們,並且正在努力學習。我已經嘗試了很多不同的方式,下面是我最近的嘗試,我不知道我是否接近。忙碌指示燈直到數據顯示才顯示
public void DoWork()
{
this.StartProgressBar();
Task.Factory.StartNew(() =>
{
UIDispatcher.Current.BeginInvoke(() =>
{
if (fileCompleted != null && !string.IsNullOrEmpty(fileCompleted.SelectedFile))
{
this.TestResults.Clear();
LoadedFileInfo info = this.Model.OpenTestCompleted(fileCompleted.SelectedFile);
foreach (var model in info.Sequence.Models)
{
foreach (var details in model.Tests)
{
this.TestResults.Add(new TestResultsModel(details, model.Name.Substring(0, model.Name.IndexOf('.'))));
}
}
}
});
});
}
private void StartProgressBar()
{
TaskScheduler scheduler = TaskScheduler.FromCurrentSynchronizationContext();
CancellationToken cancelationToken = new CancellationToken();
Task.Factory.StartNew(() => this.StopProgressBar()).ContinueWith(
m =>
{
this.ToggleProgressBar = true;
},
cancelationToken,
TaskContinuationOptions.None,
scheduler);
}
private void StopProgressBar()
{
this.ToggleProgressBar = false;
}
你可能想看看的BackgroundWorker:https://msdn.microsoft.com/de-de/library/system.componentmodel.backgroundworker%28v=vs。 110%29.aspx – Ben
感謝您的答覆,我看了一下,但我不明白這足以知道我是否正確使用了我的情況中的示例。我不知道如何將我的代碼放在上面,並將其分解爲後臺任務。你能在這裏提供任何幫助嗎? – Wannabe