首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >让计时器每2秒完成一次不同的任务C#

让计时器每2秒完成一次不同的任务C#
EN

Stack Overflow用户
提问于 2018-09-27 06:50:23
回答 1查看 45关注 0票数 -1

我尝试让计时器每隔2秒显示一行,而不是一次将所有文本添加到文本框中,我想让用户有机会阅读对话框,而不是一次将所有文本添加到文本框中。这就是我到目前为止拥有的代码,但它似乎不能输出文本。

代码语言:javascript
复制
private void OaksSpeakingTimer_Tick(object sender, EventArgs e)
    {

        //Starting Oaks basic speaking timer
        OaksSpeakingTimer.Start();
        ProfessorTxt.Text += "LLLLLLL";
        OaksSpeakingTimer.Stop();
        OaksSpeakingTimer.Start();
        ProfessorTxt.Text += "\rrrrrrrrrrrrrrrrrrrrrrrrrrr.";
        OaksSpeakingTimer.Stop();
        OaksSpeakingTimer.Start();
        ProfessorTxt.Text += "\nttttttttttttttttttttttttttttttttttttttttt!";
        OaksSpeakingTimer.Stop();
    }
EN

回答 1

Stack Overflow用户

发布于 2018-09-27 07:16:45

您可以将所有想要的文本放在一个Queue中,并在计时器触发时将下一个字符串出队:

代码语言:javascript
复制
private Queue<string> messages = new Queue<string> 
{
    "LLLLLLL",
    "\rrrrrrrrrrrrrrrrrrrrrrrrrrr.",
    "\nttttttttttttttttttttttttttttttttttttttttt!"
};

private void OaksSpeakingTimer_Tick(object sender, EventArgs e)
{
    if (messages.Count == 0) 
    {
        OaksSpeakingTimer.Stop();
        return;
    }

    var message = messages.Dequeue();
    ProfessorTxt.Text += message;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52527036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档