为了账号安全,请及时绑定邮箱和手机立即绑定

是否有任何类型的内联构造可以用来使外部方法调用可等待?

是否有任何类型的内联构造可以用来使外部方法调用可等待?

C#
慕慕森 2021-11-07 18:49:43
我想让下面的用户查找和组查找可等待,以便我可以在 Task.WhenAll() 中调用它们:var userTask = UserPrincipal.FindByIdentity(context, inputParameters.Item2);var groupTask = GroupPrincipal.FindByIdentity(context, inputParameters.Item3);await Task.WhenAll(userTask, groupTask);var user = await userTask;var group = await groupTask;我可以为这些查找中的每一个创建 2 个 1 行方法,1 个方法。您知道我是否可以在方法中使用任何类型的内联构造/包装器来使这些方法调用成为可等待的,因此我可以以与上面的示例代码类似的方式调用这些方法吗?
查看完整描述

2 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

这就是答案,对吗?:


var userTask = new Task<UserPrincipal>(() => { return UserPrincipal.FindByIdentity(context, inputParameters.Item2); });

var groupTask = new Task<GroupPrincipal>(() => { return GroupPrincipal.FindByIdentity(context, inputParameters.Item3); });

await Task.WhenAll(userTask, groupTask);

var user = await userTask;

var group = await groupTask;


查看完整回答
反对 回复 2021-11-07
?
波斯汪

TA贡献1811条经验 获得超4个赞

使用Task.Run<TResult> Method (Func<TResult>). 它是TaskFactory.StartNew(Action)方法或手动初始化的更简单的替代方法new Task(Action)


将指定的工作排入队列以在线程池上运行并返回代表该工作的 Task 对象。


var userTask = Task.Run(() => UserPrincipal.FindByIdentity(context, inputParameters.Item2));

var groupTask = Task.Run(() => GroupPrincipal.FindByIdentity(context, inputParameters.Item3));

await Task.WhenAll(userTask, groupTask);

var user = await userTask;

var group = await groupTask;


查看完整回答
反对 回复 2021-11-07
  • 2 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信