我应该等待 ValueTask 吗?

2023-12-31

这将是一个有效的实施ValueTask请? 缓存服务从缓存或数据库返回数据。

public async ValueTask<IList<HrEmploymentDataCustom>> GetEmployeesFacts()
{
    try
    {
        var facts = (List<HrEmploymentDataCustom>) _memoryCache.Get("facts");
        return facts ?? await _accountService.GetEmploymentFacts(DetailsRequestType.All, null);
    }
    catch (Exception e)
    {
        var tc = new TelemetryClient();
        tc.TrackException(e);
        return null;
    }
}

这会是:var employeesFacts = await _cacheService.GetEmployeesFacts();

or var employeesFacts = _cacheService.GetEmployeesFacts().Result;

这里有点困惑。


这会是:

var employeesFacts = await _cacheService.GetEmployeesFacts();

通常是的。

or

var employeesFacts = _cacheService.GetEmployeesFacts().Result;

这里有点困惑。

永远不能。

让我们为您解惑。

第一:值任务简单来说就是按值复制而不是按引用复制的任务。不要使用 ValueTask,除非您知道其中的差异,并且有理由根据实证性能研究(表明常规任务是收集压力的一个重要因素)来这样做。几乎一直使用常规任务即可。

你不改变你的方式use基于是否按值复制或按引用复制的任务。不管怎样,你都会等待任务。

你从不使用.Result在任务上,无论它是值还是引用。为什么?因为假设任务没有完成:那么Result将同步等待其完成。假设工作流的最后一步当前在当前线程的队列中等待分派。您只需将该线程置于睡眠状态即可!现在线程正在休眠,等待itself唤醒它,这样它就会永远沉睡。切勿使用.Result。这样做几乎总是错误的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该等待 ValueTask 吗? 的相关文章

  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的

随机推荐

  • 如何在 Linux 上用 C 检查堆栈和堆的使用情况?

    有没有办法在Linux上检索C中的堆栈和堆使用情况 我想知道堆栈 堆专门占用的内存量 如果您知道进程的 pid 例如 1234 则可以使用pmap 1234命令 打印内存映射 您还可以阅读 proc 1234 maps文件 实际上是一个文本
  • ANSI C 中的复合语句(块)是否被括号表达式包围?

    浏览我找到的 Linux 内核源代码一些代码 http lxr linux no linux v2 6 30 arch x86 include asm uaccess h L332其中括号包围的语句块被视为表达式口齿不清 或ML 即一个表达
  • 为 iPad 进行编译时是否设置了特定的 Xcode 编译器标志?

    为 iPad 进行编译时是否设置了特定的 Xcode 编译器标志 我想有条件地编译 iPad 与 iPhone iPod Touch 代码 例如 ifdef TARGET IPAD code for iPad else code for i
  • Eclipse 3.7 Indigo:“关于对话框”错误

    我最近将 Eclipse 3 6 实例升级到 3 7 我想查看 帮助 gt 关于 Eclipse 选项 但没有显示此对话框 使用 consoleLog debug 选项运行它以了解可能出现的问题 这就是我所看到的 有什么想法吗 顺便说一句
  • 将 ETag / Last-Modified 装饰器与 Django 基于类的通用视图一起使用

    我最近将 Django 项目之一中的所有视图迁移到新的基于类的视图 对于经典的基于函数的 Django 视图 有一个方便的装饰器django views decorators http condition如果存在与您指定的条件匹配的缓存副本
  • 反应堆模式在 Node.js 中如何工作?

    我正在阅读 Node js 设计模式 我陷入了对反应堆模式的理解中 我在这里没有看到任何调用堆栈 我认为调用堆栈是 Node js 设计的主要部分之一 谁能帮我理解这张图吗 此外 没有回调队列 一切都从应用程序开始 应用程序发出请求 事件多
  • 如何在 AngularJS 中大写和大写?

    我想将 HTML 表单中的某些字段大写 大写 HTML
  • 将 QMatrix4x4 与 OpenGL 函数结合使用

    有没有简单的使用方法QMatrix4x4与 OpenGL 功能 特别是glMultMatrixf 如果我理解正确的话 我必须转置矩阵 并确保转换qreal 可以是float or double取决于底层系统 GLfloat 没有一个函数可以
  • 在sql server中存储图像

    我正在尝试将数据库设计放在一起来存储图像 你们中的许多人可能有过设计数据库来存储图像的经验以及与之相关的挑战 数据库最终可能会存储数十万张图像 我计划使用 SQL Server 2008 数据库和实体框架 计划使用 FILESTREAM 数
  • MPI_Allgather 和 MPI_Allgatherv 之间的区别

    有什么区别MPI Allgather and MPI Allgatherv 来自MPI标准 http www mpi forum org docs MPI GATHERV 扩展了功能 MPI GATHER 通过允许变化 每个进程的数据计数
  • 离屏和嵌入式浏览器比较(用于游戏)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们一直在考虑为我们的 C 应用程序添加良好的浏览器支持 这个问题是关于独立于 GUI 的浏览器库 因为
  • 如何在类扩展中添加静态(存储)属性来创建单例? (迅速)

    我想将这段代码转换为 Swift 这里的 Objective C 代码正在创建一个单例对象 如果我可以这样描述的话 我可以用调度一次 t来转换它 但我想使用一种更优雅的方式 应该类似于 静态让捆绑 NSBundle But 静态让捆绑 NS
  • C# WebBrowser 控件——AJAX 之后获取文档元素?

    我正在编写一个应用程序 它使用 WebBrowser 控件来查看可通过添加新内容 元素的 AJAX 进行更改的 Web 内容 我似乎无法以我尝试过的任何方式获得新元素 BrowserCtl DocumentText 没有最新的页面 当然它也
  • Zend 可重用小部件/插件/迷你应用程序?

    我是 Zend 框架的新手 并试图获得一些有关代码可重用性的见解 我确实了解模块 但对于哪些功能应该进入模块以及哪些功能不应该进入模块似乎存在一些不确定性 我正在努力实现的目标 1 拥有可重用的小程序 小部件 插件 无论您如何称呼它们 可以
  • TransitionFromView 删除之前的视图

    我在应用程序中的视图之间转换时使用 TransitionfromView 时遇到问题 Setup 这是视图控制器的基本设置 它有两个视图 一个 MKMapView 和一个 UITableView 当按下切换按钮时 应该在地图和表格之间交替视
  • 使用 Bundler 安装 Gems == 大问题

    如果我跑bundle install 一切都会过去 我重新启动 nginx 当我访问该网站时 我看到乘客错误如下 git github com spree spree git at master is not checked out Ple
  • 使用 JavaScript 在特定延迟后执行脚本

    有没有类似 jQuery 的 JavaScript 方法delay or wait 将脚本的执行延迟特定的时间 只是为了补充其他人所说的内容setTimeout 如果以后想调用带参数的函数 就需要设置一些匿名函数调用 您需要将该函数作为参数
  • Golang 的 Codeclimate 测试覆盖率格式化程序

    无处可去Codeclimate 文档 https docs codeclimate com v1 0 docs setting up test coverage section supported languages and formats
  • 控制模板可见性触发器

    我对下面的按钮样式所做的只是让按钮仅在 IsMouseOver 或 IsPressed 时可见 它的编写方式甚至无法编译 找不到 Glyph 如何清理这个问题 直到 IsMoueOver 时按钮可见 Cheers Berryl
  • 我应该等待 ValueTask 吗?

    这将是一个有效的实施ValueTask请 缓存服务从缓存或数据库返回数据 public async ValueTask