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 -> '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 é 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
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. |