cost 194 ms
實施 ValueTaskSource.SetCompleted 的正確方法是什么

[英]What's the right way to implement ValueTaskSource.SetCompleted

所以我們有這個 class 實現IValueTaskSource這個代碼不能寫成異步等待,因為沒有什么可以等待的。 我們向另一個正在運行的線程發送一條消息並取回一個 ValueTask,調用者可以等待該 ValueTask 以獲取另一個線程已完成處理該消息的通知。 然而,另一個線程是預先存在的並且已 ...

如何暫停/恢復異步工作者,而不產生內存分配開銷?

[英]How to Pause/Resume an asynchronous worker, without incurring memory allocation overhead?

我有一個包含無限while循環的異步方法。 這個循環被程序的主線程頻繁地暫停和恢復。 為此,我目前正在使用Nito.AsyncEx包中的PauseTokenSource類: 這工作得很好,但我注意到每次暫停和恢復PauseTokenSource時都會分配大約 100 個字節。 由於這種情況每秒發 ...

ValueTask 實例不應直接訪問其結果,除非該實例已完成

[英]ValueTask instances should not have their result directly accessed unless the instance has already completed

有一個返回ValueTask的庫,我有一個正在使用 ValueTask 的同步方法。 問題是有以下警告: CA2012:除非實例已經完成,否則不應直接訪問 ValueTask 實例的結果。 與任務不同,在操作完成之前,不能保證在 ValueTask 上調用 Result 或 GetAwaiter( ...

我是否需要查詢我選擇不等待的 ValueTask 的 .Result 屬性?

[英]Do I need to query the .Result property of a ValueTask that I choose to not await?

假設我有一個返回類型ValueTask的 object 的方法,例如ChannelReader上的WaitToReadAsync方法。 我可以通過三種方式使用此ValueTask 。 我可以: 直接等着吧。 把它變成一個任務,然后等待它(用.AsTask() ) 查詢.Result屬性是否已同步完 ...

ValueTask.Preserve() 的意義何在?

[英]What is the point of ValueTask.Preserve()?

ValueTask和ValueTask<TResult>有一個Preserve()方法,概括為“獲取一個可以在未來任何時候使用的 ValueTask”。 那是什么意思,我們什么時候應該使用它? 這是否意味着“在未來的任何時候”都不能使用“正常”的ValueTask ? 如果是這樣,為 ...

如何返回取消的 ValueTask<t> 傳播 OperationCanceledException,沒有異步/等待?</t>

[英]How to return a canceled ValueTask<T> that propagates an OperationCanceledException, without async/await?

我正在編寫具有ValueTask&lt;T&gt;返回類型並接受CancellationToken的 API 。 如果CancellationToken在調用該方法時已經被取消,我想返回一個取消的ValueTask&lt;T&gt; ( IsCanceled == true ),它在等待時傳播一個 ...

具有不可避免的異步等待調用的 ValueTask 方法?

[英]ValueTask method with unavoidable async await calls?

我目前有以下異步方法: 如果上面的代碼是熱路徑並且調用了很多次,更改為使用ValueTask是否安全/可以? 我不確定的是sslim.WaitAsync鎖定調用,它總是會導致代碼路徑永遠不會完全同步(即使_someObject已經初始化),這與將ValueTask用於可能同步執行的路徑相反嗎? 另 ...

同步方法的 ValueTask

[英]ValueTask for synchronous method

我正在使用並發字典實現一個簡單的查找服務來存儲數據。 由於使用此服務的大多數方法都是異步的,因此我正在考慮使用ValueTask&lt;TResult&gt;公開查找函數。 偽代碼: 這種方法是否有意義,是否有任何警告? ...

ValueTask 有 ContinueWith 嗎?

[英]Is there a ContinueWith for ValueTask?

如果 API 返回ValueTask或ValueTask&lt;T&gt; ,有沒有辦法對其執行ContinueWith ,就像我可以使用Task一樣? 是否有 Microsoft 提供的 NuGet 庫與 .NET 標准 2.0 一起使用? ...

轉換 ValueTask<t> 到一個非通用的 ValueTask</t>

[英]Convert a ValueTask<T> to a non generic ValueTask

這里提出的問題與此處的問題相同,旨在為其創建一個明確的解決方案。 最准確的答案是 Stephen Toub 本人在本期中正是關於這個問題的。 “推薦代碼”如下:public static ValueTask AsValueTask&lt;T&gt;(this ValueTask&lt;T&gt; ...

從內部等待某些任務的方法返回 ValueTask 是否有意義

[英]Is there any sense to return ValueTask from method that internally awaits some Tasks

我有一個大致如下所示的異步方法: 由於數據已經准備好,此方法將在大部分時間同步工作。 因此,用 ValueTask 替換返回類型以減少分配看起來是個好主意。 但這調用reader.ReadInt32()返回任務。 所以問題是:從內部等待某些任務的方法返回 ValueTask 是否有意義? ...

如何選擇異步委托的返回類型

[英]How to choose the return type of an async delegate

我將一個異步委托傳遞給 LINQ Select方法,我更喜歡獲取ValueTask列表而不是Task列表。 我該怎么做? 例子: 結果類型:System.Threading.Tasks.Task[] 這是不可取的。 我發現我可以通過用異步方法替換異步委托來創建我想要的列表,如下所示: ...

價值任務<TResult>和異步狀態機

[英]The ValueTask<TResult> and the async state machine

根據文檔, ValueTask&lt;TResult&gt; ... 提供包裝Task&lt;TResult&gt;和TResult的值類型,僅使用其中一個。 我的問題是關於 C# 編譯器在遇到async關鍵字時生成的狀態機。 是不是足夠聰明,以產生ValueTask&lt;TResult ...


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