首页 > 编程语言 >C# 将异步改成同步方法

C# 将异步改成同步方法

时间:2023-08-30 19:00:48浏览次数:38  
标签:异步 同步 C# await Task jwtToken 改成 async

再此做个记录。

最近项目满篇都是async异步方式写代码,但是有些场景并没有执行的异步方法,就是说不需要执行await async。

如果要改成同步的方法,需要去掉async,再写个重构同步方法(这个就很积累)

如果想不改变async方式,还能有效的执行同步方法。可以加入下面的代码:

await Task.CompletedTask;

意思为,结束task为同步方法,并兼容异步的语法。

public async Task<IResponseOutput> LoginAsync([FromBody][Required] string input)
        {
            await Task.CompletedTask;
            if (input != _OSSConfig.Login.Code)
            {
                return ResponseOutput.NotOk("密码错误!");
            }

            var jwtToken = _iLoginService.GetAccessTokenAndRefreshToken("-1", "-1");

            return ResponseOutput.Ok(jwtToken.Item1, jwtToken.Item2);
        }

 参考: https://stackoverflow.com/questions/44096253/

标签:异步,同步,C#,await,Task,jwtToken,改成,async
From: https://blog.51cto.com/u_16208051/7296121

相关文章

  • 软件测试|Mac安装appium报权限问题
    前言appium是我们最常用的app自动化测试工具,基本上每一个自动化测试工程师都需要安装appium环境,我的一位朋友在给自己的新买的Mac电脑安装appium时出现了一个报错,报错指向权限被拒绝,无法下载appium,这是一个很普遍的权限问题,下面就为大家介绍一下解决appium安装时的权限被拒绝的......
  • Oracle EBS查看请求日志报404 not found错误,FNDWRR.exe资源访问不存在
    问题描述如上图中,查看请求时,点击“查看日志”按钮后,正常浏览器会打开一个页面,可以看到这个请求的日志,但出现问题后,浏览器会报404错误,如下图解决方法cd$EBS_ORACLE_HOME/common/scripts实际目录:(/oracle/PROD/fs1/FMW_Home/Oracle_EBS-app1/common/scripts)请根据自己的目......
  • MySQL 使用Navicat delete/insert into/update 大量数据表锁死,kill的线程后线程处于ki
      MySQL使用delete/insertinto/update大量数据表锁死,kill的线程后线程处于killed状态问题解决实际生产环境问题描述:使用Navicat备份BigData数据表时不小心点到了取消按钮,导致数据表被锁。  查看MySQL线程队列,找到刚刚执行的SQL看是属于什么状态。showprocessli......
  • stm32f411CEU6做HID键盘,使用stm32cubemx随手记录
    最近找到一个stm32f411开发板,买了很久之前测试完就没使用了现在来做个HID键盘用用下面这个是当时购买淘宝店铺下面的gitee链接有兴趣的可以看看WeActStudio.MiniSTM32F4x1:WeActStudioSTM32F401CEU6/STM32F411CEU6核心板资料Github镜像仓库(gitee.com)关于stm32f411ceu6......
  • Close,application.Terminate与halt有什么区别
    当Close是一个主窗体时,程序会退出.Close会发生FormClose事件,FormCloseQuery事件Halt会发生FormDestory事件,Application.Terminate以上三个事件都不会发生Application.Terminate就是程序结束了。整个程序结束运行,系统强行收回系统资源当主窗口关闭时或WM_QUIT消息触发时,Termina......
  • Java中的ThreadLocal详解
     一、ThreadLocal简介多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的一种保证一种规避多线......
  • C#定时任务
    C#中可以使用定时任务来执行一些定时的操作。你可以使用`System.Timers.Timer`类或者`System.Threading.Timer`类来创建定时任务。以下是一个使用`System.Timers.Timer`类的示例代码:```csharpusingSystem;usingSystem.Timers;publicclassProgram{privatestaticTimer......
  • C++ 数组排序 查找。数值排序、冒泡排序以及顺序查找的方法
    #include<iostream>#include<cstring>#include<algorithm>#include<ctime>#defineMAX8usingnamespacestd; intmain() {   inta[MAX]={1,5,9,6,3,1,4,6};  for(inti=0;i<MAX;i++)   cout<<a[i]<<"";    ......
  • ThreadLocal的介绍及其使用
    privatestaticfinalThreadLocal<Integer>THREAD_LOCAL=newThreadLocal<>();@TestvoidthreadLocalTest(){Assertions.assertDoesNotThrow(()->{//线程1存储数据Threadt1=newThread(()->{......
  • Quartz.Net来实现C#中的定时任务
    首先,你需要通过NuGet包管理器或手动下载并添加Quartz.Net库到你的项目中。 usingQuartz;usingQuartz.Impl;publicclassMyJob:IJob{publicTaskExecute(IJobExecutionContextcontext){//在这里编写你的任务逻辑Console.WriteLine("任......