簡體   English   中英

Visual Studio 2015 c#計時器問題

[英]Visual Studio 2015 c# Timer problems

嘿,我只是想知道是否有人可以解決我在Windows Form應用程序中遇到的計時器問題。 這是我正在使用的代碼:

private void game_Timer_Tick(object sender, EventArgs e)
    {
        while (true)
        {
            int count = 0;
            count++;
            timeLabel.Text = TimeSpan.FromSeconds(count).ToString();
        }
    }

我遇到的問題是,無論何時打開適用於此的窗口,然后此后什么也沒有發生,因此我無法執行任何操作。 刪除此代碼時,該窗口可以正常工作,因此我不確定為什么相對於本節代碼,該窗口不起作用。 有什么想法嗎? 謝謝

如果要顯示自計時器啟動以來的秒數,請聲明用於保留開始時間的字段:

private DateTime startTime;

啟動計時器時分配此字段:

game_Timer.Interval = 1000; // fire event each second
startTime = DateTime.Now;
game_Timer.Start();

並在Tick處理程序中使用它:

private void game_Timer_Tick(object sender, EventArgs e)
{
    timeLabel.Text = (DateTime.Now - startTime).ToString();
}

您的代碼有什么問題? 您在Tick事件處理程序中有無限循環。 因此,當事件首次觸發時,您將進入此循環而永遠不會退出。 而且您無能為力,因為您的應用程序忙於不斷更新時間標簽。

您也可以使用計數器而不是保存計時器開始時間。 但是您仍然需要字段:

private int count = 0;

和事件處理程序:

private void game_Timer_Tick(object sender, EventArgs e)
{
    timeLabel.Text = TimeSpan.FromSeconds(++count).ToString();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM