在WPF應用程序中,我有一個按鈕綁定到我的視圖模型中的Command。該命令啓動任務以從數據庫獲取信息,然後更新一些屬性。如何在TaskScheduler.FromCurrentSychronizationContext中繼續使用Task.Result?
//list in vm to be bound to..
List<DataModel.Item> BoundList;
//new command() =>
{
var t = Task.Factory.StartNew<IEnumerable<DataModel.Item>>(() =>
return datasvc.GetItems();
);
t.ContinueWith(t2 => {
BoundList = t.Result;
}, TaskScheduler.FromCurrentSychronizationContext);
}
該項目上t.Result
報告生成錯誤,當我使用FromCurrentSynchronizationContext
標誌,但是當它不存在沒有生成錯誤。問題是我得到一個沒有響應的用戶界面。
我在做什麼不正確?
你什麼錯誤? – SLaks
調用'Task.Run()'。或者讓它實際上是異步的,以便完全避免後臺線程。 – SLaks
我不能在這個項目中使用.NET 4.5,所以Asych/Await的東西不適用於我。 –