c# - 只使用一次定时器

标签 c# winforms timer

我只想在主窗体初始化后的 1 秒使用一次计时器。 我以为下面的消息框只会显示一次“Hello World”,但实际上每隔一秒就会有一个新的消息框显示“Hello World”。

为什么会这样?我已将 t.Stop() 放入 tick 事件中。 另外,我是否需要以某种方式处理计时器以避免内存泄漏?

        Timer t = new Timer();
        t.Interval = 1000;                
        t.Tick += delegate(System.Object o, System.EventArgs e)
                        { MessageBox.Show("Hello World"); t.Stop(); };

        t.Start();   

请帮助并展示是否有更好的方法? 谢谢。

最佳答案

替换 MessageBox.Show("Hello World"); t.Stop();t.Stop();MessageBox.Show("Hello World");。因为您没有及时按下 OK,计时器已经再次开始计时,而您从未到达停止代码。

关于c# - 只使用一次定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841177/

相关文章:

c# - 我的查询出现问题

c# - 领域驱动设计 - 大型子集合

c# - Winforms 透明度问题(我为之着迷)

c# - 如何制作自动调节控件?

c# - 类似于 WPF ItemsControl 的用户控件列表

android - 如何每 X 秒运行一次方法

c# - 将自定义实体映射到数据库列

c# - 有没有办法在 ErrorTemplate 中设置工具提示?

c# - 继承自 System.Timers.ElapsedEventArgs 使单元测试更容易

swift - 当应用程序处于后台模式时发送本地通知不起作用