【发布时间】:2011-10-21 12:31:04
【问题描述】:
知道对返回单元的服务器方法的 RPC 调用是消息传递调用,我想强制调用是异步的,并且只有在第一个服务器调用到达服务器后才能触发下一个服务器调用。
服务器代码:
[<Rpc>]
let FirstCall value =
printfn "%s" value
async.Zero()
[<Rpc>]
let SecondCall() =
"test"
客户端代码:
|>! OnClick (fun _ _ -> async {
do! Server.FirstCall "test"
do Server.SecondCall() |> ignore
} |> Async.Start)
这似乎在返回单元后在客户端崩溃,将服务器和客户端代码替换为:
[<Rpc>]
let FirstCall value =
printfn "%s" value
async { return () }
let! _ = Server.FirstCall "test"
没有解决问题,而以下解决了:
[<Rpc>]
let FirstCall value =
printfn "%s" value
async { return "" }
let! _ = Server.FirstCall "test"
还有其他方法可以强制消息传递调用异步吗?
【问题讨论】:
-
我猜你的意思是
Server.FirstCall而不是Server.ServerCall
标签: f# websharper