Funzione Event.scan<'U,'T,'Del> (F#)
Restituisce un nuovo evento costituito dai risultati derivanti dall'applicazione della funzione di accumulo ai valori successivi attivati nell'evento di input.
Percorso spazio dei nomi/modulo: Microsoft.FSharp.Control.Event
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
Event.scan : ('U -> 'T -> 'U) -> 'U -> IEvent<'Del,'T> -> IEvent<'U> (requires delegate)
// Usage:
Event.scan collector state sourceEvent
Parametri
collector
Tipo: 'U -> 'T -> 'UFunzione per aggiornare lo stato con ogni valore dell'evento.
state
Tipo: 'UStato iniziale.
sourceEvent
Tipo: IEvent<'Del,'T>Evento di input.
Valore restituito
Evento generato per i valori di stato aggiornati.
Note
Un elemento di stato interno registra il valore corrente del parametro dello stato. Lo stato interno non viene bloccato durante l'esecuzione della funzione di accumulo. È pertanto consigliabile verificare che l'IEvent di input non venga attivato contemporaneamente da più thread.
Questa funzione è denominata Scan negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.
Esempio
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare la funzione Event.scan. Questo codice implementa un contatore di clic semplice. Ogni volta che l'utente fa clic sul form, lo stato viene incrementato di 1 e il testo del form viene modificato per visualizzare il nuovo stato.
// 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() )
Piattaforme
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.
Informazioni sulla versione
F# Runtime
Supportato in: 2.0, 4.0
Silverlight
Supportato in: 3
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.FSharp.Control (F#)
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Settembre 2010 |
Aggiunto esempio di codice. |
Miglioramento delle informazioni. |