同步方法调用异步方法
.GetAwaiter().GetResult()
计算函数超时,异步方法所有的回调操作都会期望返回到主线程。

所以会导致各种线程死锁。异步方法中使用ConfigureAwait(false)解决

 public void Check(){           //todo
                 //验证userid和token是否匹配
                 var tUserId = UserIdAndTokenValidationAsync(userId, at.UserId);
                 //验证参数签名是否正确
                 Task<bool> tvalid = CheckSignatureAsync(paramList, signature, at.Token);
                 //验证请求时间
                 Task<bool> tTicks = TicksValidationAsync(signature, timestamp);

                 bool userIdRes = tUserId.GetAwaiter().GetResult();
                 bool validRes = tvalid.GetAwaiter().GetResult();
                 bool ticksRes = tTicks.GetAwaiter().GetResult();
 }
        public async Task<bool> UserIdAndTokenValidationAsync(int requsetUserId, int tokenUserId)
        {
            bool res = await Task.Factory.StartNew(() =>
            {
                return UserIdAndTokenValidation(requsetUserId, tokenUserId);
            }).ConfigureAwait(false);
            return res;
        }

最新文章

  1. Smart3D系列教程2之 《为什么三维重建效果这么差?——探探那些被忽略的拍照要求和技巧》
  2. c#.net中参数修饰符ref,out ,params解析
  3. T4模板——一个神奇的代码生成器
  4. RabbitMQ Exchange中的fanout类型
  5. 打开VS2012的创建单元测试功能
  6. AJAX-----14HTML5中新增的API---files
  7. 用python requests库写一个人人网相册爬虫
  8. CF 33B String Problem
  9. Mysql limit性能优化(小offset与大offset)
  10. struct 和typedef struct的区别
  11. ASP.NET-SHA256加密方法
  12. 安装inotify-tools监控工具
  13. Vue学习Day002
  14. 软件工程(FZU2015) 赛季得分榜,第9回合
  15. What are some good books/papers for learning deep learning?
  16. 流媒体之HLS——综述
  17. 潭州课堂25班:Ph201805201 第十三课 文件 (课堂笔记)
  18. layui使用iconfont
  19. tabindex属性用法
  20. Android 模仿微信发送图片 钟罩效果

热门文章

  1. Abstract factory抽象工厂--对象创建型
  2. 百练1088:滑雪 【DP】+【DFS】
  3. UVa 11475 - Extend to Palindrome
  4. HDU2082 找单词 【母函数】
  5. cocos2d-x 3.0 常见问题及解决
  6. ios3--UIView的常见方法
  7. Android之仿今日头条顶部导航栏效果
  8. 神经网络结构设计指导原则——输入层:神经元个数=feature维度 输出层:神经元个数=分类类别数,默认只用一个隐层 如果用多个隐层,则每个隐层的神经元数目都一样
  9. shell脚本-高级变量
  10. thinkphp vender