簡體   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