两年前我遇到一个难题:

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

  

最新文章

  1. 组件嵌套+Mixin函数demo
  2. 解决问题:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
  3. Android 命名规范 (提高代码可以读性) 转
  4. Java 创建xml文件和操作xml数据
  5. MySql 存储过程实例(附完整注释)
  6. (3)初次接触off
  7. [转载] ubuntu下定制Vim/Gvim及使用技巧
  8. Python源码剖析
  9. python与数值计算环境搭建
  10. [转]Disabling ASLR on individual iOS applications when using iOS 6.0.1
  11. CentOS编译安装LNMP环境
  12. 【Alpha】第七次Daily Scrum Meeting
  13. JAVA面向对象-----接口的概述
  14. 从0开始的Python学习015输入与输出
  15. python数据结构(二)------元组
  16. Qt样式表的使用
  17. (转)Tomcat(java运行环境)安装及配置教程
  18. eclipse运行tomcat中发生异常重启后tomcat端口被占用
  19. 我的sublime 插件配置
  20. HashMap的put方法返回值问题

热门文章

  1. 解决failed to push some refs to git
  2. webpack踩坑之旅
  3. 让你变懒的 Android Studio Live Templates
  4. 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总
  5. pku 2488 A Knight&amp;#39;s Journey (搜索 DFS)
  6. hdu2993之斜率dp+二分查找
  7. 增加tomcat的缓存
  8. org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
  9. Chef 自动化运维:初探 cookbook
  10. C#程序打包安装部署