C# 网络。框架 2.0 |拖延时间?

C# NET. Framework 2.0 | Make a delay?

如何让我的程序等待 1 秒然后执行某些操作? 就像在 NET 中一样。带有 Task.Delay() 的 Framework 4.8 但我使用的是 NET。我的旧 Windows 2000 笔记本电脑项目的 Framework 2.0。有什么我可以做的吗?

    panel1.Visible = true;
    //delay
    panel2.Visible = true;
    //delay
    ...

我看到您想让 UI 面板延迟可见。 要避免 的一件事是 UI 线程上的任何重大延迟,因为您的表单在此期间将没有响应,用户可能会认为它已崩溃。

一个好的方法是生成一个工作线程来执行此延迟操作,而不会阻塞您的 UI 线程。但是当需要将 UI 面板更改为 Visible 时,必须使用 Invoke.

将其编组回 UI 线程

这是我用来在 C# .Net Framework 2.0 中测试此答案的代码。如果你想试试,我把它贴在了 GitHub 上。

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
    }
    protected override void OnHandleCreated(EventArgs e)
    {
        base.OnHandleCreated(e);
        new Thread(makeVisibleOnDelay).Start();
    }

    private void makeVisibleOnDelay()
    {
        Thread.Sleep(1000);
        Invoke((MethodInvoker)delegate { panel1.Visible = true; });
        Thread.Sleep(1000);
        Invoke((MethodInvoker)delegate { panel2.Visible = true; });
    }
}

现在面板逐渐显示: