【发布时间】:2011-03-28 22:57:33
【问题描述】:
我对 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 后 serverThread 仍然处于活动状态,但是当 GUI 再次启动时,我不知道如何获取对 serverThread 的引用。
通过单击图标启动 GUI。
感谢您的时间和回答。
【问题讨论】:
-
这里使用两个进程是最自然的解决方案,从长远来看,它会让您的事情变得更容易。你为什么不想这样做?
-
因为我认为这会让沟通和更新 GUI 更成问题。
标签: c# multithreading