首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >暂停方法/防止气球提示多次显示

问暂停方法/防止气球提示多次显示
EN

Stack Overflow用户
提问于 2013-11-24 21:46:35
回答 2查看 100关注 0票数 0

这是我的情况,我试图创建一个系统,当网络关闭时,一个气球提示似乎告诉我它已经关闭了。但是,通过将气球提示代码放置在监视网络的事件中(每个滴答使用计时器,基本上是一个while循环),气球提示就会出现在每个滴答中,而我只希望它出现一次。

我还尝试使用两个不同的计时器,第一个启动另一个,当网络出现故障时,气球提示显示,然后计时器停止。然后,我意识到"Thread.Sleep“停止了整个程序,因为代码在一个线程下运行。

是否有停止计时器X秒或暂停一个方法的X秒量,所以气球提示只显示一次?

很抱歉我的解释太长了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-24 21:51:07

所以一些事情..。

当您轮询时(就像在while循环中一样),使用与程序正在执行的线程不同的线程是很好的做法。否则,它将锁定应用程序的UI。

我会运行在另一个线程上轮询网络连接的方法。完成此操作后,跟踪变量中的最后一个网络状态,并在轮询连接性得到结果时更新该变量。

在轮询循环中,如果之前的连接结果是网络已连接,而最近的连接结果是网络关闭,则调用一个方法(在另一个线程上),该方法将显示气球提示。

此方法应显示气球,休眠X秒,然后隐藏气球。

讲得通?

票数 1
EN

Stack Overflow用户

发布于 2013-11-24 21:57:07

我对它的想法是这样处理它(伪代码)

代码语言:javascript
复制
class Program
{
    public static bool hasBalloonOpened { get; set; }
    static void Main(string[] args)
    {
        while (network == down)
        {
            if (!hasBalloonOpened) 
            {
                hasBalloonOpened = !hasBalloonOpened;
                BalloonTip.Show();
            }
            //rest of loop or method calls
        }
    }
}

基本上是一个公共布尔值,它告诉循环是否需要打开气球提示,如果需要,它会翻转公共布尔值,这样提示就不会再次触发或显示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20181433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档