加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何在ruby中使用两个参数异步运行exe?

发布时间:2020-12-17 03:35:47 所属栏目:百科 来源:网络整理
导读:当我打开页面时,exe应该运行.需要运行异步进程. 有没有办法在ruby中使用两个参数异步运行exe? 我已经尝试过ruby命令 – system(),exec()但它等待进程完成.我需要用参数启动exe,无需等待进程完成 是否有任何rubygems支持我的问题? 解决方法 您可以使用 Proc
当我打开页面时,exe应该运行.需要运行异步进程.

有没有办法在ruby中使用两个参数异步运行exe?

我已经尝试过ruby命令 – system(),exec()但它等待进程完成.我需要用参数启动exe,无需等待进程完成

是否有任何rubygems支持我的问题?

解决方法

您可以使用 Process.spawnProcess.wait2

pid = Process.spawn 'your.exe','--option'

# Later...
pid,status = Process.wait2 pid

您的程序将作为解释器的子进程执行.除此之外,它的行为就像从命令行调用一样.

你也可以使用Open3.popen3

require 'open3'
*streams,thread = Open3.popen3 'your.exe','--option'

# Later...
streams.each &:close
status = thread.value

这里的主要区别是您可以访问三个IO对象.流程的标准输入,输出和错误流将按此顺序重定向到它们.

如果您打算使用程序的输出,或通过其标准输入流与之通信,那么这很好.通常打印在终端上的文本将改为您的脚本.

您还会得到一个等待程序完成执行的线程,方便直观.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读