cost 231 ms
暫停和恢復 F# 異步工作流 (Async<'T>)

[英]Suspend and resume F# asynchronous workflows (Async<'T>)

有沒有一種通用的方法來獲得對任意異步工作流執行的外部控制,用於暫停和恢復? 類似於 CancellationToken,但更像是 SuspendResumeToken,其中可以簡單地執行以下操作: 我可以通過在每次迭代或遞歸步驟檢查這樣的標記來模擬遞歸或迭代函數的行為,但由於異步工作流具有自然的屈 ...

Task.ContinueWith 的 F# 異步等效項

[英]F# Async Equivalent of Task.ContinueWith

我一直在為我們的一些較大的 .NET 解決方案實施[&lt;Trace&gt;]屬性,這將允許將可配置分析輕松添加到任何被認為重要的函數/方法。 我正在使用Fody和MethodBoundaryAspect來攔截每個函數的進入和退出並記錄指標。 這適用於同步函數,對於返回Task方法,有一個可行的解 ...

為什么我必須包裝 Async<T> 進入另一個異步工作流程,讓! 它?

[英]Why do I have to wrap an Async<T> into another async workflow and let! it?

我試圖理解 F# 中的異步工作流,但我發現了一個我真的不理解的部分。 以下代碼工作正常: 我定義了一個異步工作流,其中 TryOpenAsync 返回Task&lt;StreamOpenResult&gt;類型。 我使用 Async.AwaitTask 將其轉換為Async&lt;Stream ...

調用節點js查詢異步映射功能

[英]Node js Query Async Map function is call

在mapSeries方法最終回調中的each.save方法調用之后,我沒有任何響應。我正在嘗試此解決方案。我將如何做同樣的事情。 我該如何解決並處理這種情況? ...

F#中的ConfigureAwait(false)

[英]ConfigureAwait(false) in F#

我正在使用一個用 C# 編寫的庫並使用 async/await 模式。 在 C# 中,我可以通過使用ConfigureAwait(false)調用它來等待某些東西,但是當我使用 F# 中的庫時,我沒有看到做同樣事情的方法? 目前,我執行SomeMethodAsync() |&gt; Async.A ...

在調用F#異步工作流程時,是否可以避免定義臨時標簽?

[英]When calling an F# async workflow, can I avoid defining a temporary label?

假設我有一個異步數據源: 我可以用let!來稱呼它let! 和一個臨時標簽: 或者,我可以使用Async.RunSynchronously和管道調用它(效率很低!),並且沒有臨時標簽: 我喜歡showData2的語法,但是知道調用Async.RunSynchronous ...

異步計算不會捕獲OperationCancelledException

[英]async computation doesn't catch OperationCancelledException

我正在嘗試向URL發出異步Web請求,如果請求耗時太長,將返回該URL。 我正在使用F#異步工作流和System.Net.Http庫來執行此操作。 但是,我無法捕獲async工作流中的System.Net.Http庫引發的Task / OperationCancelledExceptio ...

結合異步和期權單子

[英]Combine Async and Option monads

最近,在編寫一些可用於許多嵌套異步工作流的代碼時,我發現了一種新興的模式,這種模式對我來說很香。 一個簡單的例子: 對我來說,“ verboseFun”似乎很冗長,但我想不出一種將Option和Async monad結合起來的方法,因此可以在不進行模式匹配的情況下將其重寫。 我在想類 ...

Async.Catch不適用於OperationCanceledExceptions

[英]Async.Catch doesnt work on OperationCanceledExceptions

我使用Async.Catch來處理異步工作流拋出的異常: 今天我注意到Async.Catch不處理OperationCanceledExceptions。 而不是從Async.Catch獲得選擇,異常不斷冒泡直到它擊中我。 我希望下面的測試是紅色的,但它是綠色的: 使用Asy ...

在測試F#異步工作流時如何獲得有用的堆棧跟蹤

[英]How to get a useful stacktrace when testing F# async workflows

我想測試以下異步工作流程(使用NUnit + FsUnit): 我為它編寫了以下測試: 自從foo拋出后,我在單元測試運行器中得到以下stacktrace: 不幸的是,堆棧跟蹤並沒有告訴我異常的位置。 它在RunSynchronously處停止。 某處我聽說Asy ...

F#Async.Run與timeout和cancellationToken同步

[英]F# Async.RunSynchronously with timeout and cancellationToken

使用超時和CancellationToken調用Async.RunSynchronously時,似乎忽略超時值。 我可以通過在CancellationToken上調用CancelAfter來解決這個問題,但理想情況下我希望能夠區分工作流中出現的異常,TimeOutExceptions和Oper ...

在異步中異常處理的意外行為,可能的錯誤?

[英]Unexpected behavior with exception handling in async, possible bug?

我在調用嵌套的異步時偶然發現了一個問題。 引發了異常,但無法使用異步工作流提供的任何常規異常處理方法。 以下是一個簡單的測試,它可以重現這個問題: 這導致了以下異常: 我真的認為應該在這種情況下捕獲異常,或者這是否真的是預期的行為? (我正在使用Visual Studi ...

讓! 按順序執行?

[英]Let! executing in sequence?

我的印象就是讓! 在f#中,智能足以在並行中執行賦值序列。 但是,以下示例顯示不同的行為,a,b,c的分配似乎同步執行。 那是怎么回事? 如果我想在並行執行a,b,c,我應該使用Async.Parallell ... |&gt; Async.RunSynchronously . ...

F#異步Web請求,處理異常

[英]F# async web request, handling exceptions

我正在嘗試在F#中使用異步工作流來獲取多個Web請求。 但是,我的一些請求偶爾會返回錯誤(例如http 500),我不知道如何處理這個問題。 看起來我的F#程序在調試器中運行時陷入無限循環。 我可能錯過了一些東西,因為我看到的例子沒有開箱即用。 我找到的第一件事就是幫助了這段代碼 ...

如何保持異步並行程序代碼的可管理性(例如在C ++中)

[英]How to keep asynchronous parallel program code manageable (for example in C++)

我目前正在研究需要通過網絡控制收集設備的服務器應用程序。 因此,我們需要做很多並行編程。 隨着時間的推移,我了解到處理實體(線程/進程/應用程序)之間有三種通信方法。 遺憾的是, 這三種方法都有其缺點 。 A)您可以進行同步請求 (同步函數調用)。 在這種情況下,調用者將等待,直到 ...

dotNet中是否存在DirectoryInfo.GetFiles / Directory.GetDirectories的異步版本?

[英]Is there an async version of DirectoryInfo.GetFiles / Directory.GetDirectories in dotNet?

dotNet中是否存在DirectoryInfo.GetFiles / Directory.GetDirectories的異步版本? 我想在F#異步塊中使用它們,並且擁有一個可以使用AsyncCallbacks調用的版本會很好。 問題是我試圖吮吸一堆目錄,可能是在慢速網絡連接上的SMB掛 ...

使用異步工作流並行化的最佳實踐

[英]Best practices to parallelize using async workflow

讓我們說我想刮一個網頁,並提取一些數據。 我最有可能寫這樣的東西: let! 告訴F#在另一個線程中執行代碼,然后將結果綁定到變量,並繼續處理。 上面的示例使用兩個let語句:一個用於獲取響應,一個用於讀取所有數據,因此它至少生成兩個線程(如果我錯了,請糾正我)。 雖然上面的 ...

F#中的異步工作流

[英]Async Workflows in F#

我是一名C#程序員,但我對F#中的異步工作流有疑問。 假設我在C#類庫中有以下類: 我的理解是,我可以在F#中創建一個名為ReadAllAsync的函數,我可以這樣調用: 並且它不會阻塞調用線程,而是將其釋放到線程池,然后在操作完成時返回另一個線程。 我想我理解如何使用Asy ...

嵌套循環中的並行代碼

[英]Parallelize code in nested loops

您總是會聽到功能代碼本質上比非功能代碼更容易並行化,因此我決定編寫一個執行以下操作的函數: 給定一個字符串輸入,每個字符串的唯一字符總數。 因此,給定輸入[ "aaaaa"; "bbb"; "ccccccc"; "abbbc" ] [ "aaaaa"; "bbb"; "ccccccc"; ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM