Event.Scan <'U, m','Del > Função (F#)
Retorna um novo evento que consiste nos resultados de aplicar a função do acúmulo dada a valores sucessivos disparados no evento de entrada.
Namespace/Module Path: Microsoft.FSharp.Control.Event
Assembly: FSharp.Core (em FSharp.Core.dll)
// Signature:
Event.scan : ('U -> 'T -> 'U) -> 'U -> IEvent<'Del,'T> -> IEvent<'U> (requires delegate)
// Usage:
Event.scan collector state sourceEvent
Parâmetros
collector
Tipo: 'U -> 'T -> 'UA função para atualizar o estado com cada valor do evento.
state
Tipo: 'Uo estado inicial.
sourceEvent
Tipo: IEvent<'Del,'T>O evento de entrada.
Valor de retorno
Um evento que acione no estado atualizado avalia.
Comentários
Um item de estado interno registra o valor do parâmetro atual de estado.O estado interno não está bloqueado durante a execução da função de acúmulo, portanto deve ser interpretado que a entrada IEvent não é disparada por vários threads simultaneamente.
Essa função é chamada Scan em assemblies compilados.Se você está acessando a função de um idioma diferente F#, ou com a reflexão, use este nome.
Exemplo
O exemplo de código a seguir mostra como usar a função de Event.scan .Esse código implementa um contador simples de clique.Cada vez que o usuário clica no formulário, o estado incrementa por 1 e o texto do formulário é alterado para exibir o novo estado.
// This code implements a simple click counter. Every time
// the user clicks the form, the state increments by 1
// and the form's text is changed to display the new state.
open System.Windows.Forms
open System.Drawing
open Microsoft.FSharp.Core
let form = new Form(Text = "F# Windows Form",
Visible = true,
TopMost = true)
let initialState = 0
form.Click
|> Event.scan (fun state _ -> state + 1) initialState
|> Event.add (fun state -> form.Text <- state.ToString() )
Plataformas
O windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informações de Versão
Versões da biblioteca principal de F#
Suportado em: 2,0, 4,0, portáteis