C# DataTemplateSelector内的等待操作
我有一个WPF应用程序,它以前使用同步方法通过sintax获取必要的数据C# DataTemplateSelector内的等待操作,c#,wpf,C#,Wpf,我有一个WPF应用程序,它以前使用同步方法通过sintax获取必要的数据 var tagFromDescription = service.GetItem(x => x.Description == tag); 那个些服务的方法已经改变,并且并没有复古兼容性,所以我要做的就是让它正常工作 public class TestDataTemplateSelector : DataTemplateSelector { public override DataTemplate Sele
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中),我会这样做
这是可行的,在这种情况下,可以执行.Result或.Wait(),还是冒死锁的风险
var tagFromDescription = await service.GetItem(x => x.Description == tag);