我很乐意为我的基于Windows的桌面应用程序提供一个 Web 界面,反之亦然。我的桌面应用程序是用 wxRuby 编写的,网络服务器是 Sinatra(使用 webrick)。最简单的想法就是把它们混在一起,这是行不通的。
此代码不起作用。网络服务器和 gui 应用程序不会同时运行。桌面应用程序先运行,后关闭;辛纳屈开始。
require 'wx'
require 'sinatra'
configure do set :server, 'webrick' end
get '/' do
"Sinatra says hello"
end
class MyApp < Wx::App
def on_init
@frame = Wx::Frame.new( nil, -1, "Application" )
@frame.show
end
end
app = MyApp.new
app.main_loop
所以我想把最后两行改成
Thread.new do
app = MyApp.new
app.main_loop
end
再次。桌面应用程序运行直到关闭,然后网络服务器启动。所以我尝试在一个线程中启动 Sinatra。
Thread.new do
require 'sinatra'
configure do set :server, 'webrick' end
get '/' do
"Sinatra says hello"
end
end
require 'wx'
class MyApp < Wx::App
def on_init
@frame = Wx::Frame.new( nil, -1, "Application" )
@frame.show
end
end
app = MyApp.new
app.main_loop
再次。桌面应用程序运行直到关闭,然后网络服务器启动。
请提出建议,但请记住,我真的很想只有一个过程。 如果您的解决方案是两个过程;我想要不需要轮询的强大的进程间通信。
谢谢!杰夫