任务与异步任务

2024-01-27

好吧,我一直在试图解决这个问题,我读过一些文章,但没有一篇提供我正在寻找的答案。

我的问题是:为什么Task必须返回一个任务async Task不是吗? 例如:

public override Task TokenEndpoint(OAuthTokenEndpointContext context)
{
    // Code removed for brevity.

    return Task.FromResult<object>(null);
}

正如你所看到的,该方法不是async,所以它必须返回一个任务。

现在,看一下这个:

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
    // Code removed for brevity...
    if(user == null)
    {
        context.SetError("invalid_grant", "username_or_password_incorrect");
        return;
    }

    if(!user.EmailConfirmed)
    {
        context.SetError("invalid_grant", "email_not_confirmed");
        return;
    }

    // Code removed for brevity, no returns down here...
}

它使用async关键字,但它不返回任务。这是为什么? 我知道这可能是有史以来最愚蠢的问题。 但我想知道为什么会这样。


async向编译器表明该方法包含await。当这种情况时,你的方法隐含地返回一个任务,所以你不需要。

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

任务与异步任务 的相关文章

  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • .Net应用程序设置路径

    默认情况下 Windows 应用程序设置保存在该目录中 USERPROFILE Local Settings Application Data
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 线程睡眠和Windows服务

    我正在开发一个 Windows 服务 该服务存在一些问题Thread Sleep 所以我想我会尝试使用计时器 因为这个问题建议 在 Windows 服务中使用 Thread Sleep https stackoverflow com que
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif

随机推荐

  • 如何复制字典并仅编辑副本

    I set dict2 dict1 当我编辑时dict2 原本的dict1也发生变化 为什么 gt gt gt dict1 key1 value1 key2 value2 gt gt gt dict2 dict1 gt gt gt dict
  • 我需要一个 hack 来制作 xslt 让我们为变量设置新值

    我读到 与编程语言不同 XSLT 不允许我们为变量设置新值 我只是想知道是否有任何技巧可以绕过人们正在使用的这个限制 因为有能力重置 a 的值variableAFAIK 本质上很有用 好吧 至少如果我们可以重置变量的值 我可以在这里解决我的
  • Flutter - 如何在 GetStorage 中存储列表?

    对于用户浏览的每一篇文章 我想保存ID信息 我正在使用 getstorage 我的代码示例如下 我也找不到真正的方法 我正在寻找保存 id 列表的最佳方法 final box GetStorage List
  • 防止隐藏字段改变

    如果我的 ChangePassword 表单包含隐藏的用户 ID 字段怎么办 BadPerson 知道 GoodPerson 的 ID 他使用 FireBug 打开 更改密码 表单 将其 Id 更改为 GoodPerson 的 Id 因此
  • 如何在Python中的函数调用之间维护列表和字典?

    我有一个功能 在里面我维护着一个值字典 我希望在不同的函数调用之间维护该字典 假设 dic 是 a a 1 b 2 c 3 第一次打电话说 我变了a a to 100 字典变成a a 100 b 2 c 3 在另一个电话中 我改变了a b
  • 防止/使修补二进制程序集变得困难

    我不确定术语是否正确 您可以使用哪些代码实践来使某人难以修改二进制文件 程序集以绕过检查 例如在源代码中 bool verificationResult verify if verificationResult allow Somethin
  • java.lang.ClassNotFoundException:org.springframework.boot.SpringApplication 与 maven-jar-plugin

    我是 Spring 和 Maven 的新手 我正在尝试运行一个简单应用程序的 jar 但收到以下错误 java jar target gs rest service 0 0 1 SNAPSHOT jar Exception in threa
  • iOS 14 中 UIBarButtonItem 是否不再支持accessibilityLabel?

    Update 此错误已在 iOS 14 5 中修复 我将以下类嵌入到UINavigationController class ViewController UIViewController override func viewDidLoad
  • 如何在 C# 中生成随机命名的文本文件?

    我必须创建一个循环来生成一个 5 个随机选择的字母字符串 然后在该名称下创建一个文本文件 比如说 C 我将如何做到这一点 生成名称并在目录中创建文件 我想我必须从 ascii 代码中挑选 5 个随机数 将它们添加到一个数组中 然后将它们转换
  • 如何在 Xcode 中链接动态库?

    我目前正在 Qt 中开发一个程序 它使用库 libqextserialport 1 dylib 我构建它并在 x 代码中运行 它返回 dyld Library not loaded libqextserialport 1 dylib Ref
  • 创建数组时出现系统 OutOfMemoryException

    我得到一个SystemOutOfMemoryException创建数组时 然而length我的阵列does not exceed Int32 MaxValue 这是代码 请不要评判该代码 它不是我的代码 至少有 7 年历史 Dim myFi
  • GNU find:什么时候应用默认操作?

    Debian 8 的 find 命令的手册页显示 如果整个表达式不包含除 prune 或 print 之外的任何操作 print 对整个表达式为 true 的所有文件执行 那么为什么这些输出不同 mkdir p test foo test
  • 可变字段不应该是“公共静态”

    我收到下面一行的 sonarQube 错误 有专家建议如何解决这个问题吗 提前致谢 protected static final String COLUMN NAMES new String date customerNumber cust
  • 尝试编写 IRC 客户端,但很难找到有关代码和连接协议的优质资源

    我已经看过 RFC 但我仍然在挣扎 我已经用 C 编写了一个基本客户端 但找不到有关如何正确连接的文档 一旦我连接并传输NICK和USER信息 我就需要加入一个频道 如果我立即执行 JOIN 则不会发生任何事情 大概是因为太早了 我必须推迟
  • 将角度分量文件拆分为单独的文件

    我有一个角度分量 绘制组件 它有很多按钮 如绘制矩形 绘制圆形等 我正在使用 paperjs 它有助于实际绘图 我有一些已更新的常见对象 例如 我有一个 paperjs 对象 每当我绘制任何形状 无论是圆形 矩形还是任何其他形状 时 该对象
  • 使用 SAM 在本地调用 Lambda 失败/超时

    我正在尝试获取本地环境来使用 VSCode windows 运行 调试 Python Lambda 我正在使用提供的 HelloWorld 示例来掌握这一点 但我无法调用 用于设置 SAM 和调用 Lambda 的步骤 我已经安装并运行了
  • 是什么导致 MyISAM 损坏? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我听说 MyISAM 表可能会损坏 什么样的操作最有可能损坏它们以及如何安全地修复所述损坏 MySQL 文档对此非常明确 http d
  • 如何在 Javascript 中按属性数量对对象进行排序? [复制]

    这个问题在这里已经有答案了 我有一个对象 William Hill bet365 royal panda pay 0 karamba roller 0 braned 0 pay 0 betfred braned 0 并想按属性数量对其进行排
  • 如何在 Python 中将二叉树打印为节点结构

    我有一个蟒蛇代码 https 1drv ms f s Aj9lfQS8qKqwnWiXL t6pVaPHu0y将字符串数学表达式转换为二叉树并对树的节点进行排序 以便左子节点始终小于右子节点 我想按以下顺序打印二叉树 例如 考虑数学表达式
  • 任务与异步任务

    好吧 我一直在试图解决这个问题 我读过一些文章 但没有一篇提供我正在寻找的答案 我的问题是 为什么Task必须返回一个任务async Task不是吗 例如 public override Task TokenEndpoint OAuthTo