- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
IJSRuntime.InvokeVoidAsync()
被称为代码路径中的最后一件事会导致 CA2012(正确使用 ValueTasks)警告。可以安全地忽略它,还是应该通过等待来解决它?
当我添加 .Preserve()
在我的同步调用结束时,警告消失,代码工作相同。这是为什么?发生什么了?这个方法有什么作用?文档(Preserve()
方法)不清楚。
我想要“即发即忘”使用返回 ValueTask
的方法.从同步方法调用它的最正确方法是什么?
添加一些上下文 - 我从 Blazor 代码执行 JS。我不依赖调用后JS代码引起的效果。这就是为什么我不等待它。我可以重构我的代码以等待 ValueTask
但除了让代码分析器满意之外,它还有其他用途吗?
最佳答案
But what about calling from old school event handlers? They can be at best
async void
async Task
. Razor 引擎知道如何处理这个问题。
async void
那里。
For now my idea is to try to go "async all the way"
but would it serve any other purpose than making the Code Analyzer happy?
_ = DoSomethingAsyncWithoutAwait();
InvokeAsync()
将您的任务发送到主 UI 线程。目前仅适用于 Blazor 服务器。仅当任务需要更新 UI 时才需要它,并且从正常的 Blazor 代码开始,最好只是等待。正常的 Blazor 生命周期不会被阻止。使用它来避免警告是次优的。
关于c# - 关于在 Blazor 中使用 ValueTask 的 CA2012 警告。如何在 Blazor 中正确实现 "fire and forget"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68252275/
这里问的问题和one here是一样的并旨在为其创建一个最终的解决方案。最准确的答案是 Stephen Toub 自己在 this issue 中的回答。这正是关于这个问题。 “推荐代码”如下: pu
我正在编写一些在内存中构建缓冲区然后将其清空到 TextWriter 中的代码当缓冲区填满时。大多数时候,角色会直接进入缓冲区(同步)但偶尔(每 4kb 一次)我需要调用 TextWriter.Wri
根据documentation ValueTask ... Provides a value type that wraps a Task and a TResult, only one of whi
我有一个具有以下签名的方法: public async Task CreateAsync(T entity) { try { await _c.CreateItemAs
如果 API 返回 ValueTask或 ValueTask , 有没有办法执行 ContinueWith在它上面,就像我可以用 Task 做的那样?是否有 Microsoft 提供的 NuGet 库
请问哪个是 ValueTask 的有效实现?缓存服务从缓存或数据库返回数据。 public async ValueTask> GetEmployeesFacts() { try {
是否有接受 ValueTask 的 Task.WhenAll 等效项? 我可以使用解决它 Task.WhenAll(tasks.Select(t => t.AsTask())) 如果它们都包装了一个
假设您想编写一个类似于以下方法的方法。它包装了一个返回 ValueTask 的函数使用简单的性能监控代码: static async Task Measure(Func> body) { Co
如果我使用 ValueTask 来实现实际的异步,返回 TaskCompletionSource 是否还有好处? 据我了解, ValueTask 的目的是减少分配,但在等待 TaskCompletio
有一些初步资料提到 C# 7.0 中有一个新的 ValueTask: https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-c
自 C# 7.0 起,异步方法可以返回 ValueTask。解释说当我们有缓存结果或通过同步代码模拟异步时应该使用它。但是,我仍然不明白始终使用 ValueTask 有什么问题,或者实际上为什么 as
IJSRuntime.InvokeVoidAsync()被称为代码路径中的最后一件事会导致 CA2012(正确使用 ValueTasks)警告。可以安全地忽略它,还是应该通过等待来解决它? 当我添加
我是一名优秀的程序员,十分优秀!