在DataTemplateSelector中等待操作

时间:2016-08-26 13:25:15

标签: c# wpf

我之前使用同步方法获取必要数据的WPF应用程序

var tagFromDescription = service.GetItem(x => x.Description == tag);

这些服务的方法已经改变,并且没有复古的兼容性,所以我要做的事情就是为了让事情发挥作用

 public class TestDataTemplateSelector : DataTemplateSelector
{
    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
         var tagFromDescription = service.GetItem(x => x.Description == tag).Result;

        return base.SelectTemplate(item,container);
    }
}

在一个简单的WPF项目中它可以工作,但我想知道这是否会导致死锁(在实际应用程序生命周期中有不同的组件在主UI线程上工作)或者现在如何解决这个问题为了安全起见?

在代码的其他部分(例如在viewmodels中)我做

var tagFromDescription = await service.GetItem(x => x.Description == tag);

这是有效的,在这种情况下可以做.Result或.Wait()或者我冒着死锁的风险吗?

0 个答案:

没有答案