小编ala*_*kfq的帖子

F#事件在Async工作流中不起作用

我想对代理人进行Post-Fire-Reply.基本上,代理触发事件然后回复调用者.但是,我要么继续收到超时错误,要么事件无法正确触发.我尝试过Post-Fire,它停止了超时错误,但事件没有触发.

let evt = new Event<int>()
let stream = evt.Publish

type Agent<'T> = MailboxProcessor<'T>
type Fire = Fire of int

let agent = Agent.Start(fun inbox -> 
    let rec loop() = async {
        let! msg = inbox.Receive()
        let (Fire i) = msg
        evt.Trigger i }
    loop())

let on i fn = 
    stream 
    |> Observable.filter (fun x -> x = i) 
    |> Observable.filter (fun x -> x <> 1)
    |> Observable.subscribe (fun x -> fn x) 

let rec collatz n =
    printfn …
Run Code Online (Sandbox Code Playgroud)

events f# asynchronous agents mailboxprocessor

3
推荐指数
1
解决办法
147
查看次数

标签 统计

agents ×1

asynchronous ×1

events ×1

f# ×1

mailboxprocessor ×1