async-workflow

    8熱度

    1回答

    我試圖做一個異步的Web請求到一個URL,如果請求時間太長,將返回。我正在使用F#異步工作流和System.Net.Http庫來執行此操作。 但是,我無法捕獲async工作流中由System.Net.Http庫引發的Task/OperationCancelledExceptions。相反,異常在Async.RunSynchronously方法提出了,你可以在這個堆棧跟蹤看到: > System.O

    3熱度

    2回答

    我在調用一個恰好爲null的嵌套異步時偶然發現了一個問題。引發了一個異常,但無法使用Async工作流提供的任何常規異常處理方法。 下面是一個簡單的測試,重新產生此問題: [<Test>] let ``Nested async is null with try-with``() = let g(): Async<unit> = Unchecked.defaultof<Async<uni

    4熱度

    3回答

    我目前正在研究需要通過網絡控制收集設備的服務器應用程序。因此,我們需要做很多並行編程。隨着時間的推移,我瞭解到有三種處理實體間的通信方式(線程/進程/應用程序)。遺憾的是,這三種方法都有其缺點。 A)您可以使同步請求(同步函數調用)。在這種情況下,主叫方會等待處理該功能並收到響應。例如: const bool convertedSuccessfully = Sync_ConvertMovie(pa

    4熱度

    2回答

    我是C#程序員,但我對F#中的異步工作流程有疑問。假如我有一個C#類庫以下類: class File { IAsyncResult BeginReadAll(string fileName, AsyncCallback callback, object state){} string EndReadAll(IAsyncResult result){} } 我的理解是,有可能在F#我作出了

    8熱度

    2回答

    可以說我想刮一個網頁,並提取一些數據。我想最有可能寫的是這樣的: let getAllHyperlinks(url:string) = async { let req = WebRequest.Create(url) let! rsp = req.GetResponseAsync() use stream = rsp.GetResponseStream()

    15熱度

    1回答

    什麼是F#異步工作流的Scala等價物? 例如,如何將F#代碼片段轉換爲慣用的Scala? open System.Net open Microsoft.FSharp.Control.WebExtensions let urlList = [ "Microsoft.com", "http://www.microsoft.com/" "MSDN", "http://msdn.m

    5熱度

    2回答

    我試圖使用異步工作流在F#中獲取一些Web請求。 不過,我的一些要求偶爾會返回錯誤(例如HTTP 500),我不知道該如何處理這個問題。看起來像我的F#程序在調試器中運行時陷入了無限循環。 我可能錯過了一些東西,造成的例子,我看到沒有編譯開箱。第一件事,我發現,幫助了這段代碼: type System.Net.WebRequest with member req.GetResponseA

    3熱度

    1回答

    使用超時和CancellationToken調用Async.RunSynchronously時,超時值似乎被忽略。我可以通過在CancellationToken上調用CancelAfter來解決此問題,但理想情況下,我希望能夠區分工作流中發生的異常TimeOutExceptions和OperationCanceledExceptions。 我相信下面的示例代碼演示了這一點。 open System