GUI网络编程--服务器每连接一个客户端就显示其信息

来源:互联网 发布:奇迹归来佣兵进阶数据 编辑:程序博客网 时间:2024/05/15 01:36

我遇到的问题是:

                             这里有甲、乙、丙3个客户端,一个服务端。

                             1. 当甲连接到服务端时,无法在服务端的GUI上显示信息,只能在控制台显示信息。

                             2. 当3个客户端都连接完后,服务端的GUI才显示这3个客户端的相关信息

分析原因:

                (1).  传统的GUI应用程序通常都是单线程的。

                        
                (2).  如果在事件线程中执行的任务都是短暂的,那么界面的响应灵敏度就较高,因为事件线程能够很快地处理用户的动作。

                        然而,如果事件线程中的任务需要很长的执行时间,例如对一个大型文档进行拼写检查,或者从网络上获取一个资源,

                       那么界面的响应灵敏度就会降低。如果用户在执行这类任务时触发了某个动作,那么必须等待很长时间才能获得响应,

                       因为事件线程要先执行完该任务。更糟糕的是,不仅界面失去响应,而且即使在界面上包含了“取消”按钮,也无法取消

                       这个长时间执行的任务,因为事件的线程只有在执行完该任务后才能响应“取消”按钮的点击事件。然而,如果将这个长

                       时间运行的任务放在一个单独的线程中运行,那么事件线程就能及时地处理界面事件,从而使用户界面具有更高的灵敏

                       度。

处理方案:

                  将这个长时间运行的任务放在一个单独的线程中运行。

                  即,将对文档进行拼写检查这个任务放到一个单独的线程中。也就是,GUI界面处理多线程任务时,必须自定义一个线程,

                  用来专门处理任务。

这个问题发生于那些地方?

                 一个服务端多个客户端(我模拟时遇到的问题)

                 


0 0