Looking at:
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
Спасибо