Compartilhar via


Event.Scan <'U, T','Del > Função (F#)

Retorna um novo evento que consiste nos resultados da aplicação de determinada função acumulando valores sucessivas que disparou o evento de entrada.

Caminho do namespace/módulo: 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 é acionado nos valores atualizados de estado.

Comentários

O valor atual do parâmetro de estado de registros de um item de estado interno. O estado interno não está bloqueado durante a execução da função acúmulo, portanto cuidado deve ser tomada para que a entrada IEvent não é disparado por vários threads simultaneamente.

Esta função é chamada de Scan em módulos (assemblies) compilados. Se você estiver acessando a função de um idioma diferente, por exemplo, F# ou através de reflexão, use esse nome.

Exemplo

O exemplo de código a seguir mostra como usar o Event.scan função. Esse código implementa um contador simples clique. Sempre que o usuário clica no formulário, os incrementos de estado 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 7, SP2 do Windows Vista, Windows XP SP3, Windows XP Professional x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Informações sobre versão

O tempo de execução F#

Compatível com: 2.0, 4.0

Silverlight

Compatível com: 3

Consulte também

Referência

Módulo de Control.Event (F#)

Microsoft.FSharp.Control Namespace (F#)

Histórico de alterações

Date

History

Motivo

Setembro de 2010

Exemplo de código adicionado.

Aprimoramento de informações.