在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的东西不适用于我。 –