【问题标题】:How do I make an infinite loop in C# Windows Form Application如何在 C# Windows 窗体应用程序中创建无限循环
【发布时间】:2016-11-16 20:47:17
【问题描述】:

我编写了一个 C# 程序,它应该循环代码以刷新 DateTime 信息并设置标签的文本以匹配。但是,当我运行它时,表单不显示。为什么会发生这种情况,如何让表单显示?

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

    namespace Clock
    {
        static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new clock());
            }
        }
    }

忽略我的缩进(可能对也可能不对,但在程序中是正确的),我做错了什么,我该如何解决?

谢谢!

洛根·斯洛维克

【问题讨论】:

  • 最好的调试方法可能是在Application.Run(new clock()) 的行上设置一个断点,看看你是否能达到它
  • 您的问题不在提供的代码中。
  • 并回答标题问题... while(true) { ... }
  • @series0ne,原来如此...通常当程序缩进不佳时,它更明显...
  • @DangerZone 完全同意! (我对此很感兴趣!:D)

标签: c# windows forms


【解决方案1】:

似乎您正在使用无限循环阻塞 UI 线程。您可以利用async 来避免阻塞您的用户界面...只需在您的 Form_Load 方法中调用此方法即可。 InfiniteLoop();

async void InfiniteLoop()
{
    while(true)
    {
        await Task.Delay(100);
        this.Text = DateTime.Now.ToString();
    }
}

您也可以考虑使用Timer

【讨论】:

    猜你喜欢
    • 2021-09-23
    • 2018-04-24
    • 1970-01-01
    • 2016-09-09
    • 2017-05-16
    • 1970-01-01
    • 2018-12-06
    • 2021-04-30
    • 1970-01-01
    相关资源
    最近更新 更多