cost 445 ms
F# - 取消令牌適用於異步{}但不適用於任務{}

[英]F# - cancellation token works for async{} but not for task{}

當我使用async{}計算表達式運行此代碼塊時: ...然后運行tokenSource.Cancel() ,如預期的那樣取消執行過程。 但是,當我使用task{}運行這個極其相似的代碼塊時: ...然后運行tokenSource.Cancel() ,執行過程不會被取消。 為什么取消令牌 fun ...

從 F# 中的 Async Result object 獲取結果

[英]Get result from Async Result object in F#

我有一段代碼,形式如下 這里的問題是 func2 必須與 match 一起使用! 語句和普通匹配關鍵字無法計算表達式,因此我無法匹配模式Some a 。 但是,我不能單獨在其中一個分支中使用異步。 F#有沒有方法可以把Async<Result<a>>轉成Result< ...

2022-11-21 12:45:11   1   44    f# / f#-async  
在 F# 中將 Task 和 Async 一起用於單獨線程上的異步操作

[英]Using Task and Async together for Asynchronous operations on seperate threads in F#

對於我在 F# 方面的豐富經驗,我對我的代碼有點冒險,我有點擔心交叉線程問題。 背景: 我有許多訂單需要驗證地址。 一些訂單可以根據谷歌地圖地理編碼 API 進行驗證,允許 50/秒。 rest 是澳大利亞郵政信箱,我們沒有很多 - 但我需要根據不同的 API 驗證它們,該郵箱每秒只允許 1 個呼 ...

2022-09-06 02:05:39   1   28    f# / f#-async  
F# 中 Async.Sequantial 的任務版本是什么

[英]What is the Task version of Async.Sequantial in F#

下面的代碼曾經可以工作 - 但我正在將我的很多 async{} 函數轉換為 task{} 並且我無法弄清楚如何在沒有可變變量的情況下使其按順序運行。 function“matchTransaction”曾經是異步的——但沒有Task.Sequential,只有Task.WhenAll,但我需要它們 ...

F# 異步:父/子取消?

[英]F# async: parent/child cancellation?

所以我們開始了:給定一個Confluent.Kafka IConsumer<> ,它將它包裝到一個專用的async CE 中,只要沒有請求取消,它就會消耗。 這段代碼也防御了OperationCancelledException並運行finally塊以確保消費者的優雅終止。 問題 1 ...

Xamarin F# 到 C# 異步調用:正確的現代方式

[英]Xamarin F# to C# async call: correct modern way

我正在嘗試從 Xamarin 中的 F# 代碼同步調用 C# Async 函數。 原始 C# 代碼看起來像(這是 Plugin.BLE 目標設備服務發現): 如果我使用推薦的 F# 原語 以下代碼: 無法編譯,因為“字段、構造函數或成員 'GetCharacteristicAsync' ...

我何時應該使用Async.AwaitIAsyncResult而不是Async.AwaitTask來等待任務?

[英]When should I use Async.AwaitIAsyncResult instead of Async.AwaitTask to await a Task?

我希望在使用以下調用保存更改時等待Entity Framework Core返回的Task<int> : myDbContext.SaveChangesAsync true 我找到了至少3種不同的方法來實現這一點,但我不確定哪一個是最好的,因為我不關心Task<int&g ...

F#中C#異步主的等價物

[英]Equivalent of C# async main in F#

我想知道F#中C#async main的等價物是什么。 更重要的是,在F#程序中是否有一種從main使用/使用異步方法的特殊方法,還是等待完成? 更具體地說,我們正在使用.NET核心通用主機。 在C#程序中, main可能如下所示: 在F#程序中,我的直覺是做這樣的事情: ...

可取消的F#異步主對象,傳播了異常

[英]cancellable F# async main with exceptions propagated

我正在尋找像F# Async.Start這樣的解決方案,但沒有吞下異常。 我希望控制台應用程序正常死於未處理的異常。 這是一個.NET Core 2.1應用程序,我需要通過響應Linux SIGTERM和SIGINT信號來處置資源。 如何修改此代碼,以使其傳播kaboom! 例外? l ...

構建一個可取消的非阻塞后台工作者

[英]Build a cancellable non-blocking background worker

假設我有一個長時間運行的計算,我想在后台運行以免阻塞UI線程。 因此,我將其包裝在異步計算中。 接下來,我需要在循環中運行計算,在該循環中,我切換到另一個線程來執行計算,然后返回到UI線程以對其結果執行某些操作。 然后,必須將此循環包裝在另一個異步計算中,以提供一些從UI中取消 ...

F#繼續執行Async.Catch

[英]F# Continue on Async.Catch

我正在做許多異步Web請求,並使用Async.Parallel。 就像是: 一些請求可能會引發異常,我想記錄它們並繼續處理其余的URL。 我找到了Async.Catch函數,但是當拋出第一個異常時,這會停止計算。 我知道我可以在異步表達式中使用try...with表達式來計算整個列 ...

2016-07-23 03:51:03   1   249    f# / f#-async  
在異步工作流中捕獲HttpClient超時

[英]Catching HttpClient timeouts within an async workflow

我通過Async.AwaitTask調用HttpClient ,從代理(MailboxProcessor)中調用。 我想在HTTP調用期間捕獲錯誤,因此在異步工作流中使用了一次try...with但它完全錯過捕獲客戶端超時異常,然后導致代理崩潰。 最小復制: 我可以通過使它完全同 ...

將消息從異步線程發布到F#中的主線程

[英]Post messages from async threads to main thread in F#

有一個對observable的訂閱,它發送日志消息。 一些日志消息來自其他線程,因為它們位於F#異步塊中。 我需要能夠從主線程中寫出消息。 這是當前可過濾掉許多日志消息的代碼 ,因為它們不在主線程上: 我有各種形式使用的System.Threading.Synchronizat ...

Fsharpx Async.AwaitObservable不會調用取消延續

[英]Fsharpx Async.AwaitObservable does not call cancellation continuation

我正在嘗試在使用Async.StartWithContinuations啟動的異步工作流中使用Fsharpx的Async.AwaitObservable 。 出於某種原因,如果用於啟動此工作流的取消令牌在等待可觀察時被取消(但在工作流的其他部分期間不被取消),則永遠不會調用取消繼續。 但是, ...

F#並發的不同方法之間的關系是什么

[英]what is the relationship among different approaches of F# concurrency

我最近正在學習F#異步工作流,這是F#並發的重要功能。 讓我感到困惑的是,有多少種方法可以用F#編寫並發代碼? 我讀了除F#之外的文章,以及一些有關F#並發性的博客,我知道諸如背景工作者之類的知識。 IAsyncResult的; 如果在本地計算機上編程,則F#中存在分片內存並發。 如果 ...

取消F#異步工作流程的子塊

[英]Cancel a sub-block of an F# async workflow

我正在嘗試創建異步工作流,其中有一個主異步循環,它在每個循環中執行異步子塊。 我希望這個異步子塊可以取消,但是當它取消時,我不希望主循環取消。 我希望它能繼續下去do! subBlock do! subBlock 。 我在Async中看到的唯一方法,即使具有可接受的簽名(使用Canc ...

2014-12-20 02:22:16   2   306    f# / f#-async  
F#Async <'T>取消的工作原理是什么?

[英]F# How Async<'T> cancellation works?

我對使用TPL在C#中完成異步取消的方式非常滿意,但我對F#有點困惑。 通過調用Async.CancelDefaultToken()顯然可以取消傳出的Async&lt;'T&gt;操作。 但它們並沒有像我預期的那樣被取消,它們只是......消失了...我無法正確檢測到取消並正確拆除堆棧。 ...

使用Async.Parallel進行計划

[英]Scheduling with Async.Parallel

有什么辦法可以通過引入調度程序來限制/限制Async.Parallel? 我希望並行執行Async &lt;'a&gt;的Seq,但不想超過某個小時限制。 我可以使用每個Async &lt;'a&gt;都會檢​​查的共享可變變量,但如果可能的話,我想避免這種情況。 ...

為什么計算表達式不跨越finally塊

[英]Why doesn't a computation expression span the finally block

例如: 你do! 在最后你得到編譯器的消息“你只能在計算表達式中使用do!”但它仍然在那里。 我知道如何解決這個問題,但我想了解編譯器限制這種情況的原因。 好了一些fiddeling后,我覺得它像這樣沮喪:(我很高興我們可以寫cexprs) 從: 至: ...

2014-09-16 13:31:28   1   298    f# / f#-async  
Async.Await沒有捕獲任務異常

[英]Async.Await not catching Task exception

我有一個不返回任何東西的任務。 你不能在這樣的Task上做Async.AwaitTask,所以你需要做一個Async.AwaitIAsyncTask。 不幸的是,這似乎只是吞下了底層任務拋出的任何異常: - 另一方面,AwaitTask正確級聯異常: - 將常規(非泛型) ...


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