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;
            }
    

      

           

  • 相关阅读:
    SecureCRT 连接 虚拟机Linux 命令
    如何使用secureCRT连接vmware中的虚拟主机?
    SecureCRT8.1+SecureCRT_keygen完成注册
    常用python机器学习库总结
    Torch7在Ubuntu下的安装与配置
    朴素贝叶斯算法 & 应用实例
    编写MR代码中,JAVA注意事项
    march.
    Docker CentOS 7.2镜像systemd问题解决办法
    Docker 基础命令 简要入门
  • 原文地址:https://www.cnblogs.com/datacool/p/datacool_2017_webapi.html
Copyright © 2011-2022 走看看