我怎么能在此处显示下一个工具提示之前等待 5 秒?

How could I wait 5 seconds before displaying the next tooltip here?

我相信我已经遵循了这里的大部分准则,所以希望这个问题没有错。对于初学者,我已经 Googled,但老实说不知道在这种情况下要 Google 什么。这是一个措辞奇怪的问题。

基本上,我的困境是:我正在尝试使用 Winforms 和 C# 让两个角色进行对话。它只是 UserControl 上的两个静态人物来回交谈,但用户可以使用按钮来选择他对另一个角色说的话。每当用户按下按钮说些什么时,我希望其他角色使用类似语音气泡的工具提示进行回复。

public void button1_Click(object sender, EventArgs e)
{
    if (conversationStage == 1)
    {
        speech.createSpeech("Response to dialog 1-1.", new Point(420, 250), this, 5000);
        caseSwitch++;
        buttonSwitcher();
    }

我希望做的事情是这样的:

public void button1_Click(object sender, EventArgs e)
{
    if (conversationStage == 1)
    {
        speech.createSpeech("Response to dialog 1-1.", new Point(420, 250), this, 5000);
        Wait(5);
        speech.createSpeech("Next speechbubble here..." <other parameters>);
        caseSwitch++;
        buttonSwitcher();
    }

当然,这实际上行不通。在有人决定建议我使用 Thread.Sleep 之前,我已经尝试过了,因为它会停止所有 GPU 更新,这意味着 speechbubble 永远不会呈现,这并不好。我相信我唯一的选择是使用典型的 Winforms 计时器,但我似乎无法以一种我可以简单地将其集成到此处的 if 语句中的方式来操纵它们(我只是不知道如何)。

我现在卡住了,我不知道如何继续。

使用 .NET 4.5 您可以使用新的 async/await 框架在不锁定线程的情况下休眠。

勾选这个postHow can I perform a short delay in C# without using sleep?