我有一个使用套接字进行通信的无头应用程序。启动时,它会保持活动状态,直到发送一条消息告诉它退出(或者崩溃,或者被杀死)。
当使用Ruby对该应用程序进行单元测试时,我需要启动该进程,与它进行交互(通过套接字),然后将其杀死。
我以为我可以使用这种模式来做到这一点:
class TestServer < MiniTest::Unit::TestCase
def setup
@thread = Thread.new{ `#{MY_COMMAND}` }
end
def test_aaa
# my test code
end
def teardown
@thread.kill if @thread
end
end
但是,teardown
代码会杀死该帖子,但不会杀死它启动的进程。
如何以下列方式启动流程:
我碰巧在OS X上开发,但如果可能的话,我会欣赏一个适用于Ruby运行的所有操作系统的通用解决方案。
答案 0 :(得分:2)
您可以使用 private void xButton9_Click(object sender, EventArgs e)
{
Select_doctor Child_frm = new Select_doctor();
Child_frm.ShowDialog(this);
// if() check for valid form here
{
string val = Child_frm.ReturnValue1; //values preserved after close
string dateString = Child_frm.ReturnValue2;
MessageBox.Show(Child_frm.ReturnValue1);
}
}
代替线程和反叛:
Process.spawn