zoukankan      html  css  js  c++  java
  • webapi 异步返回

    两年前我遇到一个难题:

    https://q.cnblogs.com/q/78177

    WebAPI中使用socket如果在server端回复了再返回值?

    现在终于做出一种实现了:

     [HttpGet]
            public ApiActionResult OnceBackDemo()
            {
                var result = new ApiActionResult()
                {
                    Success = false,
                    Result = null,
                    Message = "操作失败。"
                };
                System.Threading.ManualResetEvent mre = new System.Threading.ManualResetEvent(false);
                mre.Reset();
                Random rm = new Random();
                Action<Stopwatch> task = (sw) =>
                {
                    sw.Start();
                    int rm_val = rm.Next(1000);
                    System.Threading.Thread.Sleep(rm_val);
                };
                var sw_out = new Stopwatch();
                task.BeginInvoke(sw_out, (ar) =>
                {
                    task.EndInvoke(ar);
                    mre.Set();
                    sw_out.Stop();
                    result.Success = true;
                    result.Message = DateTime.Now + "->操作成功,耗时:" + sw_out.ElapsedMilliseconds.ToString()+"毫秒。";
                }, null);
                if (!mre.WaitOne(1500))
                {
                    return result; 
                }
                return result;
            }
    

      

           

  • 相关阅读:
    schedule和scheduleAtFixedRate的区别
    JAVAWEB项目报"xxx响应头缺失“漏洞处理方案
    springboot整合swagger初探指南
    wsl安装jdk
    树莓派开机启动chrome并全屏
    数据库06_数据库设计
    数据库05_事务处理
    数据库04_SQL简单实践
    Spring-AOP
    数据库03_SQL语句
  • 原文地址:https://www.cnblogs.com/datacool/p/datacool_2017_webapi.html
Copyright © 2011-2022 走看看