我是C#的新手,所以请耐心等待。我正在开发一个小型服务器应用程序,它由事件驱动的服务器线程和GUI线程组成。我想使GUI和服务器“独立”(不使用两个进程)。通过独立我的意思是一旦GUI启动它检查服务器线程是否正在运行,如果它不是它创建它,否则只是通知服务器线程GUI线程是活动的。并且该GUI线程可以退出并使服务器线程保持活动状态。
伪代码:
GUI starts
{
if (serverThread.isRunning)
notify serverThread that GUI is active
else
create and start serverThread
}
GUI exits
{ notify serverThread that GUI is going to be terminated; exit GUI }
棘手的部分是如何重新启动GUI并通知服务器GUI处于活动状态。
现在我所做的就是:启动GUI并在GUI内部创建线程serverThread并启动它。离开GUI后服务器线程保持活动状态,但我不知道再次启动GUI时如何获取对serverThread的引用。
通过单击图标启动GUI。
感谢您的时间和答案。
答案 0 :(得分:2)
我永远不想自己使用这样的服务器。将GUI和服务器逻辑合二为一,总是坏主意。从设计和用户角度来看。
在你的情况下,我建议创建两个单独的可执行文件。首先是服务器和第二个GUI。服务器可能是Windows服务。对于两者之间的沟通,WCF将是完美的。它允许您在每一侧无缝地创建通信通道,而无需任何开发人员开销。
我理解你担心将两者分开。但如果你是更好,更有经验的开发人员(可能还有管理员),那么你就会明白,将两者分开不仅是合乎逻辑的,而且只是实际解决问题的方法。