[英]Run a thread from UI thread without blocking UI thread
我的視圖模型中有一個布爾屬性,該屬性綁定到我的視圖中的屬性。 當此屬性更改為true時,我想進行服務調用而不阻塞UI線程,因此我的視圖可以繼續工作。 到目前為止,我有:
private bool _isLoadingAnimationVisible = true;
public bool IsLoadingAnimationVisible
{
get { return _isLoadingAnimationVisible; }
set
{
_isLoadingAnimationVisible = value;
if (IsLoadingAnimationVisible)
{
Task t = new Task(() => { LoadStuff(SelectedSomething.Id, SelectedDate, false); });
t.Start();
}
RaisePropertyChanged("IsLoadingAnimationVisible");
}
}
我認為LoadStuff方法不重要,但是此任務當前正在阻止我的UI線程。 我想知道是否有一種方法可以在保持UI線程空閑的同時執行線程t。
你可以做
if (IsLoadingAnimationVisible)
{
new Thread(delegate() {
LoadStuff(SelectedSomething.Id, SelectedDate, false);
}).Start();
}
確保您沒有從LoadStuff
更新UI。
嘗試:
await Task.Factory.StartNew<bool>(()=>{get the bool})
您需要等待任務使其異步。 工廠是這樣做的一種干凈方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.