AlterEventLifetime(TPayload) 方法
修改流中事件的生存期。此方法可能同时更改事件的开始时间和结束时间。
命名空间: Microsoft.ComplexEventProcessing.Linq
程序集: Microsoft.ComplexEventProcessing(在 Microsoft.ComplexEventProcessing.dll 中)
语法
public static CepStream<TPayload> AlterEventLifetime<TPayload>(
this CepStream<TPayload> source,
Expression<Func<CepEvent, DateTime>> startTimeFunc,
Expression<Func<CepEvent<TPayload>, TimeSpan>> lifeTimeFunc
)
类型参数
- TPayload
输入事件负载的类型。
参数
- source
类型:Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TPayload> ) > ) >
输入流。
- startTimeFunc
类型:System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'CepEvent, DateTime> ) > ) >> ) > ) >
定义给定事件的新事件开始时间的函数。
- lifeTimeFunc
类型:System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'CepEvent< (Of < ( <'TPayload> ) > ) >, TimeSpan> ) > ) >> ) > ) >
定义给定事件的新事件生存期的函数。
返回值
类型:Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TPayload> ) > ) >
具有更改的事件生存期的新流。
用法说明
在 Visual Basic 和 C# 中,您可以对 CepStream< (Of < ( <'TPayload> ) > ) > 类型的任何对象将此方法作为实例方法调用。在您使用实例方法语法调用此方法时,将忽略第一个参数。有关详细信息,请参阅https://msdn.microsoft.com/zh-cn/library/bb384936(v=sql.105)或https://msdn.microsoft.com/zh-cn/library/bb383977(v=sql.105)。
注释
有关详细信息,请参阅时间戳修改。
示例
以下示例在将新生存期指定为第二个参数时,将事件时间往前推 1 分钟,但保持事件的结束时间不变(通过让原始生存期增加一分钟)。
// shift event 1 minute into the past, but leave the end time (event duration) unchanged.
var newStream = inputStream.AlterEventLifetime(e => e.StartTime - TimeSpan.FromMinutes(1),
e => e.EndTime - e.StartTime + TimeSpan.FromMinutes(1));