本文整理汇总了C#中IOrderedEnumerable.Distinct方法的典型用法代码示例。如果您正苦于以下问题:C# IOrderedEnumerable.Distinct方法的具体用法?C# IOrderedEnumerable.Distinct怎么用?C# IOrderedEnumerable.Distinct使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IOrderedEnumerable
的用法示例。
在下文中一共展示了IOrderedEnumerable.Distinct方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Resume
//HACK:【重要】对单个流程实例的串行顺序调度(不包含仍处于延迟期的调度?),有异常则跳出
/*
* 关于父子流程之间的调度顺序影响问题解决
* 在按流程串行调度前提下,按调度影响点分析
* 1.发起子流程:无影响
* 2.子流程结束:子流程本身正常结束即可,对父流程的唤醒排入父流程调度项序列中,按父流程的行为继续调度即可,对应SubProcessCompleteResumption设计
* 3.并行活动中取消子流程节点:
* ActivityInstanceCancelResumption节点取消调度被设计为可自动重试,
* 直到子流程处于调度项安全状态时才会被删除
*/
internal void Resume(IOrderedEnumerable<long> list)
{
bool error = false;
WaitingResumption prev = null, r = null;
foreach (var id in list.Distinct())
{
r = this._resumptionService.Get(id);
//忽略不存在的调度项
if (r == null) continue;
if (error
&& !this.AreAtSameFlowNodeIndex(prev, r))
{
this._log.WarnFormat("对流程“{0}”#{1}进行串行调度时异常,中断本次对该流程的调度,等待自动或人工重试"
, r.Process != null ? r.Process.Title : string.Empty
, r.Process != null ? r.Process.ID : Guid.Empty);
return;
}
error = !this.Resume(id);
prev = r;
}
}