Compartir a través de


MailboxProcessor.Post<'Msg> (Método de F#)

Envía de forma asincrónica un mensaje a la cola de mensajes de MailboxProcessor.

Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Control

Ensamblado: FSharp.Core (en FSharp.Core.dll)

// Signature:
member this.Post : 'Msg -> unit

// Usage:
mailboxProcessor.Post (message)

Parámetros

  • message
    Tipo: 'Msg

    Mensaje que se va a enviar.

Ejemplo

En el ejemplo de código siguiente se muestra cómo iniciar un agente del procesador del buzón y enviarle mensajes.

open System
open Microsoft.FSharp.Control

type Message(id, contents) =
    static let mutable count = 0
    member this.ID = id
    member this.Contents = contents
    static member CreateMessage(contents) =
        count <- count + 1
        Message(count, contents)

let mailbox = new MailboxProcessor<Message>(fun inbox ->
    let rec loop count =
        async { printfn "Message count = %d. Waiting for next message." count
                let! msg = inbox.Receive()
                printfn "Message received. ID: %d Contents: %s" msg.ID msg.Contents
                return! loop( count + 1) }
    loop 0)

mailbox.Start()

mailbox.Post(Message.CreateMessage("ABC"))
mailbox.Post(Message.CreateMessage("XYZ"))


Console.WriteLine("Press any key...")
Console.ReadLine() |> ignore

A continuación, se muestra una sesión de ejemplo.

                    

Plataformas

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Información de versiones

Runtime de F#

Se admite en las versiones: 2.0, 4.0

Silverlight

Se admite en la versión: 3

Vea también

Referencia

Control.MailboxProcessor<'Msg> (Clase de F#)

Microsoft.FSharp.Control (Espacio de nombres de F#)

Historial de cambios

Fecha

Historial

Motivo

Enero de 2011

Se ha agregado un ejemplo de código.

Mejora de la información.