Control.Event 模块 (F#)

提供用于管理事件流的功能。

命名空间/模块路径: Microsoft.FSharp.Control

程序集:FSharp.Core(在 FSharp.Core.dll 中)

module Event

说明

添加 : ('T -> unit) -> Event<'Del,'T> -> unit

每次触发给定事件时,都运行给定函数。

choose : ('T -> 'U option) -> IEvent<'Del,'T> -> IEvent<'U>

返回从原始事件选择消息时会激发的新事件。选择函数将原始消息变为可选的新消息。

filter : ('T -> bool) -> IEvent<'Del,'T> -> IEvent<'T>

仅在向给定函数传递事件参数时,才返回侦听原始事件并触发结果事件的新事件。

map : ('T -> 'U) -> IEvent<'Del, 'T> -> IEvent<'U>

返回传递给定函数转换的值的新事件。

merge : IEvent<'Del1,'T> -> IEvent<'Del2,'T> -> IEvent<'T>

任一输入事件激发时,均会激发输出事件。

pairwise : IEvent<'Del,'T> -> IEvent<'T * 'T>

返回在输入事件第二次(及之后)触发时触发的新事件。输入事件的第 N 次触发将第 N-1 和第 N 次触发时的参数配对传递。传递给第 N-1 个触发的参数将保持为隐藏内部状态,直至第 N 个触发发生为止。

Partition — 分区 : ('T -> bool) -> IEvent<'Del,'T> -> IEvent<'T> * IEvent<'T>

返回一个新事件,该事件会侦听原始事件,如果在谓词应用于事件参数时返回 true,该事件会触发第一个结果事件;如果返回false,则触发第二个事件。

scan : ('U -> 'T -> 'U) -> 'U -> IEvent<'Del,'T> -> IEvent<'U>

返回一个新事件,该事件由将给定累积函数应用于输入事件上触发的连续值而产生的结果组成。内部状态的项记录状态参数的当前值。在执行累积函数过程中,内部状态是没有锁定的,因此,应防止多个线程同时触发输入 IEvent

split : ('T -> Choice<'U1,'U2>) -> IEvent<'Del,'T> -> IEvent<'U1> * IEvent<'U2>

返回一个新事件,该事件会侦听原始事件,如果将函数应用于事件参数时返回 Choice1Of2,则触发第一个结果事件;如果返回 Choice2Of2,则触发第二个事件。

平台

Windows 8,Windows 7,Windows server 2012中,Windows server 2008 R2

版本信息

F#核心库版本

支持:2.0,4.0,可移植

请参见

参考

Microsoft.FSharp.Control 命名空间 (F#)

Control.Event<'T> 类 (F#)

Control.IEvent<'Delegate,'Args> 接口 (F#)

其他资源

事件 (F#)