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可以是能夠處理其輸入端的轉速更快流動。 它是確定有一定的延遲