在此实现中,我的存储库中有一个方法可以返回任务
Task<IList<ApplicationDTO>> GetAllAppsRequestAsync();
我编写了调用此异步方法的getter
public IList<ApplicationPropertyModel> ApplicationsList
{
get
{
IList<ApplicationDTO> applicationDTO = _appService.GetAllAppsRequestAsync();
if (applicationDTO != null)
{
applicationList = mapper.DefaultContext.Mapper.Map<IList<ApplicationPropertyModel>>(applicationDTO);
}
return applicationList;
}
set => Set(ref applicationList, value);
}
_appService.GetAllAppsRequestAsync();
-返回任务,并发现getter没有异步
我尝试编写委托,在映射模型时遇到问题。
我试图找到一些东西,但是无论我做什么,我都会死锁或者不等待任务执行结果。(尝试getAwaiter,等待,例如包装示例)并且不知道该怎么办?
忘了我尝试这样做
public static void RunSync(Func<Task> func)
{
AsyncHelper._myTaskFactory
.StartNew<Task>(func)
.Unwrap()
.GetAwaiter()
.GetResult();
}
但在项目完成之前不接受结果
节点
我应该使用该属性,因为它与wpr xaml页面中的itemControl绑定。
修改
private async Task<IList<ApplicationPropertyModel>> TakeAppListAsync()
{
IList<ApplicationDTO> applicationDTO = await _appService.GetAllAppsRequestAsync();
if (applicationDTO != null)
{
applicationList = mapper.DefaultContext.Mapper.Map<IList<ApplicationPropertyModel>>(applicationDTO);
}
return applicationList;
}