求助向用户发出消息的解决办法

leon51 2017-11-02 08:57:04
有一个工程系统,只有10个License,如果用户长时间闲置就会造成其他人无法使用。
因此我做了一个检查使用状态的工具,一旦发现闲置超过规定时间就发出提示,用户在指定时间仍不响应就直接结束此系统。
最开始我使用MessageBox.Show发出提示。但发现如果用户不响应这个对话框,超过再长时间也不会强制结束。于是我使用NotifyIcon控件,不知道是我写的问题还是怎么回事,发现也不完美(不好意思,上班没法上网,没法贴出代码)。
我的要求就是我的程序每2分钟去检查下使用状态,若超过时间就向用户发出消息。超过更长时间就直接结束系统。看起来似乎很简单,请问大家有没有更好的解决办法?谢谢!
...全文
212 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
leon51 2017-11-04
2楼的大神写的代码看不懂,要慢慢消化下
  • 打赏
  • 举报
回复
1.最简单的办法做个能够自动关闭的提示框。 伪代码

        public DialogBase(int autoCloseDuration)
        {
            this.InvokeOperator<DialogBase>(s =>
            {
                this.RunningTime = autoCloseDuration;
                this.messageBoxResult = MessageBoxResult.None;
                this.WindowStartupLocation = WindowStartupLocation.CenterOwner;

                if (Application.Current != null && Application.Current.MainWindow != this && Application.Current.MainWindow.IsLoaded)
                {
                    this.Owner = Application.Current.MainWindow;
                }

                if (autoCloseDuration > 0)
                {
                    autoCloseTimer = new Timer();
                    autoCloseTimer.Interval = 1000;
                    autoCloseTimer.Elapsed += new ElapsedEventHandler(Elapsed);
                    autoCloseTimer.Start();
                }
            });
        }

        private void Elapsed(object sender, ElapsedEventArgs e)
        {
            this.InvokeOperator<DialogBase>(s =>
            {
                this.RunningTime--;
                if (RunningTime <= 0)
                {
                    this.Close();
                    autoCloseTimer.Close();
                }
            });
        }
2. 规定时间没有响应,先直接释放license,给用户一个自动关闭的确认的提示框,提示用户时候要重新连接,并且实现重新连接的方法给用户确认重新连接时调用,用户点取消或者超时直接退出系统
  • 打赏
  • 举报
回复
xdashewan 2017-11-03
发mail或者短信通知用户
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2017-11-02 08:57
社区公告

让您成为最强悍的C#开发者