Compartilhar via


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 -> 'U

    A função para atualizar o estado com cada valor do evento.

  • state
    Tipo: 'U

    o 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

Consulte também

Referência

Módulo de Control.Event (F#)

Microsoft.FSharp.Control Namespace (F#)