C# Listen线程监听J2EE应用服务器指令强行关闭客户端

本文介绍了一个C#客户端如何通过监听模式检测Java服务重启并通知用户保存数据的方法。客户端采用ListenThread线程监测服务状态,并在检测到即将重启时,提前通知用户并强制退出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       之前完成的一个以C#客户端通过Hessian调用Java服务的企业信息化项目,要求当web应用重新发布或者应用服务器重启时需告知所有客户端:由于什么原因(message),应用服务器将在多久(time)之后重启,请所有用户在多久之内做好数据保存工作,客户端将在多久之后强行退出。这里有2中实现方式:

1)  推的模式,服务器发消息通知所有客户端;

2)  拉的模式,客户端去监听服务器消息,服务器是否要重启;

       相对来说2)的实现方式更简单,于是本案采用了2),为此需要在客户端开设一个Listen线程,用以监听应用服务器是否要重启。通常来说C#客户端应用,从启动到进入主窗口作业区有3个过程:

1)  program引导;

2)  login窗体,登录处理;

3)  进入main窗体,进行各种具体应用操作;

为此,建议在login窗体登录成功后,就启动ListenThread线程。

    public class ListenThread

    {

        private static int count = 5*60*1000;

        //

        public static void ForceClosed()

        {

            ForceClosed(count);

        }

        //private static int count = 0;

        public static void ForceClosed(Object para)

        {

            count = (int)para;

            boolean listen = true;

            while(listen){

                  if(应用服务器是否要重启){

                        listen = false;

                  }

                  Thread.Sleep(count);

            }

            强行关闭客户端

        }

}

///////////////

登录成功之后,启动ListenThread线程

    //启动相关服务线程

Thread listenThread = new Thread(new ParameterizedThreadStart(ListenThread.ForceClosed));

listenThread.Start(5 * 60 * 1000);

       为了友好起见,当ListenThread监听到应用服务器将要重启,执行强行关闭客户端操作的时候,最好能弹出一个对话框窗体(toplevel=true),显示下述信息:

1)  重启原因;

2)  数据保存提示;

3)  时间提示:多久之后客户端要强行关闭,多久之后用户可继续使用;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值