mailboxprocessor

    2热度

    1回答

    基本上,我想将以下内容更改为有限的线程解决方案,因为在我的情况下,计算列表太大,产生太多线程,我想用较少的线程来实验和衡量性能。 // the trivial approach (and largely my current situation) let doWork() = [1 .. 10] |> List.map (fun i -> async { do!

    10热度

    1回答

    我有一个代理,我在后台设置了一些数据库工作。实施看起来是这样的: let myAgent = MailboxProcessor<AgentData>.Start(fun inbox -> let rec loop = async { let! data = inbox.Receive() use conn = new System.Data.Sql

    4热度

    1回答

    我无法编译下面的代码: open Genotype open Genome type IAgent = abstract member CrossoverA: Genome<'T> -> unit type internal AgentMessage<'T> = | GetEnergy of AsyncReplyChannel<int> | Crossove

    3热度

    1回答

    该设置类似于this。 一个代理(dataSource)正在生成数据,而单个代理(dataProcessor)正在处理这些数据。生成的数据比dataProcessor可以处理的数据多得多,我不想处理所有消息,只处理最新的数据。 乔恩哈罗普在那里提出的一种可能的解决方案是“当一个人到达并丢弃除最近的所有消息之外,贪婪地吃掉收件箱中的所有消息”。 另一种方法是不听所有的消息,而是为dataProces

    3热度

    1回答

    我在这里有一个多状态的F#MailboxProcessor示例,只是想知道为什么它会编译,但行为是意想不到的 - F#代理只能在lambda函数中传入一个inbox.Receive()语句吗?我试图遵循“Expert F#3.0”第284页中提供的一般示例模式,其中 多个async {}主体的使用允许多个状态,但它并不特定inbox.Receive()是否可以用在每个异步? open System

    3热度

    1回答

    是否可以创建仅有时发布回复的邮箱代理?从外观上看,如果你想发布回复,在我看来,你必须总是发送一个异步回复频道。 对于我的用例,我非常希望能够具有一些消息只需传递给代理的灵活性,而其他消息我希望得到同步或异步回复。

    0热度

    2回答

    今天我有一个问题在一个邮箱处理器的迭代中实现一些简单的处理。 起初我试着用Seq.map做迭代,但迭代中的代码从来没有被调用过!然后我切换到使用Seq.iter的迭代,而不是,然后再处理已完成就好了...... type Agent<'Msg> = MailboxProcessor<'Msg> ... let agent = Agent.Start((fun agent ->

    2热度

    1回答

    我一直在试图学习如何使用基于异步消息的方法。以下是我正在尝试做的简化版本。我试图在一个对象内的一个MailboxProcessor内使用一个有限状态机。总的来说,与使用基于事件的方法相比,逻辑似乎更直接。当我尝试使用Async.Parallel时,我遇到了一个问题。在printfn "Eval %i" v声明之后的代码中,对于每个i1 & i2而不是仅一次评估两次。这导致我相信我没有正确使用Asy

    3热度

    1回答

    我对下面的代码示例以及人们的想法有点好奇。 这个想法是从NetworkStream中读取(〜20 msg/s),而不是在main中工作,将事情传递给MainboxProcessor,以便在完成时处理并返回绑定。 通常的方法是使用PostAndReply,但我想绑定到ListView或C#中的其他控件。必须对LastN物品进行魔术并过滤。 另外,Rx有一些错误处理。 下面的示例观察2..10中的数字

    5热度

    3回答

    我正在学习有关F#代理(MailboxProcessor)工作的MailboxProcessor。 我处理的相当非常规的问题。 我有一个代理(dataSource),它是流数据的来源。数据必须由一系列代理处理(dataProcessor)。我们可以将dataProcessor视为某种跟踪设备。 数据可以在除了与该dataProcessor可以是能够处理其输入端的转速更快流动。 它是确定有一定的延迟