小编lef*_*oat的帖子

可以将Printf.TextWriterFormat传递给MailBoxProcessor吗?

我正在使用MailBoxProcessor构建并行单元测试运行器.

我需要为测试排队打印语句,所以我可以在测试完成后打印它们.我知道如何发送一个字符串并建立一个列表,所以我可以打印它们,但这迫使我使用sprintf并将它管道输入我的打印功能,并不像我想的那样干净.

[1..200]
|> List.iter (fun i ->
  sprintf "Test %i" i &&& fun ctx ->
    ctx.printfn <| sprintf "A guid %A" (ng())
    ctx.printfn <| sprintf "I am test %i" i
    ctx.printfn <| sprintf "A guid %A" (ng()))
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到完整的代码:https: //github.com/lefthandedgoat/prunner/blob/master/Program.fs#L36-L41

并且看到这ctx是一个带有printfn方法的对象,该方法接受一个字符串并将其发布到单个邮箱,该邮箱将消息排队直到测试完成,然后循环遍历它们并打印它们.

我的目标是ctx.printfn看起来像这样

[1..200]
|> List.iter (fun i ->
  sprintf "Test %i" i &&& fun ctx ->
    ctx.printfn "A guid %A" (ng())
    ctx.printfn "I am test %i" i
    ctx.printfn "A guid …
Run Code Online (Sandbox Code Playgroud)

f#

6
推荐指数
1
解决办法
75
查看次数

标签 统计

f# ×1