見つめている:
member this.PostAndReply : (AsyncReplyChannel<'Reply> -> 'Msg) * ?int -> 'Reply
署名が私にとって直感に反しているように見える理由がわかりません。私たちがやりたいのは、エージェントにメッセージを投稿し、返信を待つことです。なぜ私たちは彼に「メッセージ」として奇妙な機能を与えなければならないのですか?
このMSDNスニペットをもう一度参照してください。
let rec loop() =
printf "> "
let input = Console.ReadLine()
printThreadId("Console loop")
let reply = agent.PostAndReply(fun replyChannel -> input, replyChannel)
if (reply <> "Stopping.") then
printfn "Reply: %s" reply
loop()
else
()
loop()
私はむしろこのようなものを好みます:
member this.PostAndReply : 'Msg * ?int -> 'Reply
ありがとう