async/await 和访问者模式[关闭]

2024-02-04

我们最近将对象树状结构(大约 40 层深)的访问者之一转换为 async/await 模式,因为最里面的接受方法现在执行使用 async/await 的工作。

一切正常,除非在调用图中深处抛出异常,然后我们会遇到 StackOverflowExceptions。

我们当前的假设:看起来异常展开发生在单个线程上,并且我们遇到了 StackOverflowExceptions。这可以解释崩溃转储堆栈跟踪,该跟踪在调用堆栈上有异常抛出语句,然后向上一直向上,直到到达 StackOverflowException。 (而在正常流程期间,只有异步状态机和当前延续位于堆栈上,为此有足够的可用堆栈空间)

使用 async/await 是否会将 .NET 4.7.2 上的默认 .NET 应用程序中可能的堆栈“深度”减少到小于 100?有没有好的方法来克服这个问题呢?是否建议不要在 .NET 中编写异步/等待访问者?这种行为还有其他解释吗?


None

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

async/await 和访问者模式[关闭] 的相关文章

  • 我如何理解这个 C 类型声明?

    double bar int double double double double 在查看讲座幻灯片时 我发现了留给学生的练习 用简单的英语来说 什么是类型bar在这个 C 声明中 Please帮助我解决这个问题 我什至不知道从哪里开始
  • 为什么在创建矩阵类时使用向量不好?

    对于我的矩阵类 我做了 template
  • 根据 N 个值中最小的一个返回不同的结果

    不确定如何使标题更具描述性 所以我只是从一个例子开始 我使用下面的代码位 它从枚举中选择一个方向 具体取决于四个轴中哪一个与给定方向相比形成最小角度 static Direction VectorToDirection Vector2 di
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • 如何在 C# 控制台应用程序中将修饰符(ctrl、alt、shift)按键捕获为单个按键?

    Console ReadKey 仅在按下 正常 键时捕获输入 然后将修饰符 如果有 附加为键信息的一部分 如何将单个修饰键注册为输入 提供了一种解决方案这个链接 https blogs msdn microsoft com toub 200
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • 是否有相当于 Clang/LLVM 的 .spec 文件,在哪里可以找到参考?

    The gcc驱动程序可以配置为使用特定的链接器 特定的选项和其他细节 例如覆盖系统头 specs files 当前 截至撰写本文时 GCC 版本 4 9 0 的手册此处描述了规范文件 https gcc gnu org onlinedoc
  • 新任务中使用的依赖注入服务

    我在需要时使用依赖项注入来访问我的服务 但我现在想要创建一个并发任务 但这会由于依赖项注入对象及其生命周期而导致问题 我读过这篇文章 标题 防止多线程 Link http mehdi me ambient dbcontext in ef6
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 如何在 DropDownList 中保留空格 - ASP.net MVC Razor 视图

    我在视图中通过以下方式绑定我的模型 问题是我的项目文本是格式化文本 单词之间有空格 如下所示 123 First 234 00 123 AnotherItem 234 00 123 Second 234 00 我想保留此项目文本中的空格 即
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo
  • xsi:type 属性搞乱了 C# XML 反序列化

    我使用 XSD exe 根据 XML 架构 xsd 文件 自动生成 C 对象 我正在反序列化 OpenCover 输出 但其中一个部分类未正确生成 这是导致异常的行
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用

随机推荐

  • 我在 GitHub 上的目录发生了什么?

    我在 git 存储库中添加了一个新的子目录 git add feeds 然后提交了这个并将其推送到 GitHub 但似乎我提交了一个符号链接 快捷方式 但没有提交其中的实际目录和文件 看这里 http github com G4EGK RS
  • 在 Core Data 中按属性获取对象

    在我的 iPhone 项目中 我想编写一个函数来检查我的 Core Data ManagedObjectContext 中是否存在具有特定属性给定值的对象 例如some property 如果已经有一个对象some property 12
  • 使用 pci_enable_msi_block

    我正在尝试在内核模块中启用多个 MSI irq 线 我正在 RC 模式下操作 问题是当我打电话时pci enable msi block 它不会分配超过 1 个 MSI 如果我打电话pci enable msi block dev 32 它
  • 为什么绑定不能与转换一起使用

    我有一个Circle和它的centerX财产绑定到text标签的属性 这是为了查看屏幕上对象的位置 每当我在圆圈上应用过渡时 绑定似乎就会停止工作 这是代码片段 ERRONEOUS PART OF CODE Circle circle ne
  • “系列对象是可变的,无法进行散列”错误

    我正在尝试让以下脚本正常工作 输入文件由 3 列组成 基因关联类型 基因名称和疾病名称 cols Gene type Gene name Disorder name no headers pd read csv orphanet infon
  • Rspec - 将输出格式化为进度/文档/HTML

    使用 Rspec 我希望能够看到标准进度条 and输出到包含生成的文档格式规格表的文件 and还生成了一个 html 文件 无需多次运行测试 如何分配多种格式以及这些格式的文件目标 我想出了如何做到这一点 您可以将以下内容添加到您的 rsp
  • Crosswalk WebView 中启用了 Chrome 的流量节省功能吗?

    在 Chrome 版本 45 0 2454 85 中 开发人员工具在窗口顶部显示黄色警告 并显示文本 考虑禁用Chrome 数据保护程序 https support google com chrome answer 2392284 hl e
  • 在 OSX 上安装了 GNU grep,但无法使用

    我尝试在 OSX 上安装 GNU grep 它似乎已安装 但我无法使用它 我已经使用自制程序完成了此操作 Macports 目前遇到了一些问题 所以我无法使用它 安装 brew tap homebrew dupes brew install
  • tomcat-dbcp 与 commons-dbcp

    这两个连接池库之间似乎存在很多混淆 我想知道哪一个更好 如果有的话 以下是我想提出的一些要点 有人可以验证吗 Tomcat DBCP 使用默认的 tomcat dbcp jar 该jar 将出现在 tomcat lib 目录中 你do no
  • 如何重新启动我自己的qt应用程序?

    我只是问自己如何重新启动我自己的qt应用程序 有人可以给我举个例子吗 要重新启动应用程序 请尝试 include
  • Matplotlib Savefig 不会覆盖旧文件

    这看起来一定是我的机器上的权限问题 在 Windows 10 上进行系统更新后 当我运行 import matplotlib pyplot as plt make figure plt plot 1 2 3 4 plt ylabel som
  • python 处理无尽的 XML

    我正在开发一个应用程序 我的工作只是为该应用程序开发一个示例 Python 接口 应用程序可以提供基于XML的文档 我可以通过HTTP Get方法获取文档 但问题是基于XML的文档是无限的 这意味着不会有结束元素 我知道文件应该由SAX来处
  • 在 JSX 中拥有变量属性的最佳方式是什么?

    希望我的问题很清楚 我主要是在寻找一种将属性动态附加到 JSX 输入的方法
  • Python 人们使用哪个路径模块或类来代替 os.path?

    只是想知道有多少人在 Python 中使用路径模块 例如 Jason Orendorff 的路径模块 而不是使用os path用于连接和分割路径 您是否使用过 Jason 的路径模块 http wiki python org moin Pa
  • 决策树中特定类的 Sklearn 决策规则

    我正在创建决策树 我的数据属于以下类型 X1 X2 X3 X50 Y 1 5 7 0 1 1 5 34 81 0 1 4 21 21 1 0 65 34 23 1 1 我正在尝试执行以下代码 X train data iloc 0 51 Y
  • 无服务器框架中的共享 Lambda 授权方设置

    我正在尝试创建一个自定义 Lambda 授权方 该授权方将在几个不同的服务 无服务器堆栈之间共享 如果我理解这里的文档https serverless com framework docs providers aws events apig
  • 如何将 Excel 中的日期转换为 ISO 8601 格式

    我试图将日期格式保存为 YYYY MM DD 例如 2014 09 01 作为 CSV 文件 但当我这样做时 格式会恢复为 M D YYYY 格式 我尝试在 Excel 中将日期转换为字符串 但每次打开 CSV 文件时 它都会恢复为 M D
  • zip(*[iter(s)]*n) 在 Python 中如何工作?

    s 1 2 3 4 5 6 7 8 9 n 3 list zip iter s n returns 1 2 3 4 5 6 7 8 9 如何zip iter s n 工作 如果用更冗长的代码编写它会是什么样子 This is a techn
  • 是否有可以通过示例创建 XSLT 的 XSL 代码生成器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 给定一个源 XML 文档以及转换后的示例 是否有一个代码生成器可以创建 XSL 转换来完成该转换 我并不
  • async/await 和访问者模式[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我们最近将对象树状结构 大约 40 层深 的访问者之一转换为 async await 模式 因为最里面的接受方法现在执行