Я хотел бы предоставить моим настольным приложениям на основе windows веб-интерфейс и наоборот.Мое настольное приложение написано на 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
Снова.Настольное приложение работает до закрытия, затем запускается веб-сервер.Поэтому я попытался запустить Синатру в потоке.
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
Снова.Настольное приложение работает до тех пор, пока оно не будет закрыто, а затем запустится веб-сервер.
Пожалуйста, сообщите, но имейте в виду, что я действительно хотел бы иметь только один процесс. Если ваше решение состоит из двух процессов;Я хотел бы иметь прочное межпроцессное взаимодействие, которое не требует опроса.
Спасибо!Джефф