繁体   English   中英

如何在 C# 中使用 WPF 中的 Threading.Timer 创建无限循环

[英]How to create an infinite loop in C# using Threading.Timer in WPF

我现在正在学习 C#,为此我决定在 Visual Studio 上使用 WPF 制作一个点击游戏。 我正在尝试添加一个按钮,一旦单击,该按钮会每秒自动为您提供硬币。 我尝试了多种方法让无限循环工作,这通常会导致程序甚至拒绝启动。

我最接近有效的东西是这段代码。

public void Timer_Start()
{
    Timer timer = new Timer(Tick, null, 100, 1000);
}

public MainWindow()
{
    InitializeComponent();
    Timer_Start();
}

public void Tick(object stateInfo)
{
    coins += cps;
    //MessageBox.Show("Running");
    this.Dispatcher.Invoke(() =>
    {
        Score_Update();
    });
}

但是,当我运行此代码时,它仅在停止前大约 1 或 2 秒有效。 它运行的次数在 1 到 10 之间变化。

juste 用这个替换你的“timer_start”方法和你的构造函数:

        private Timer timer;

    public MainWindow()
    {
        InitializeComponent();

        this.timer = new Timer(Tick, null, 100, 1000);
    }

这样,您的计时器实例不会被 .net 清理。 请记住在窗口关闭或应用程序退出时停止/处理它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM