다음을 통해 공유


MailboxProcessor.Post<'Msg> 메서드(F#)

업데이트: 2011년 1월

메시지를 MailboxProcessor의 메시지 큐에 비동기 방식으로 게시합니다.

네임스페이스/모듈 경로: Microsoft.FSharp.Control

어셈블리: FSharp.Core(FSharp.Core.dll)

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

// Usage:
mailboxProcessor.Post (message)

매개 변수

  • message
    형식: 'Msg

    게시할 메시지입니다.

예제

다음 코드 예제에서는 사서함 프로세서 에이전트를 시작하고 여기에 메시지를 게시하는 방법을 보여 줍니다.

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

세션의 예를 들면 다음과 같습니다.

                    

플랫폼

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

버전 정보

F# 런타임

지원되는 버전: 2.0, 4.0

Silverlight

지원되는 버전: 3

참고 항목

참조

Control.MailboxProcessor<'Msg> 클래스(F#)

Microsoft.FSharp.Control 네임스페이스(F#)

변경 기록

날짜

변경 내용

이유

2011년 1월

코드 예제를 추가했습니다.

향상된 기능 관련 정보