首页 > 解决方案 > c#: 如何做额外的延迟

问题描述

这是我的代码:

using System;
using System.Threading;
using System.Threading.Tasks;
using Gtk;

public partial class MainWindow : Gtk.Window
{
 async Task Do()
 {
  var i = textview.Buffer.GetIterAtLine(0);

  await Task.Delay(1000);
  textview.Buffer.Insert(ref i, "Hello, world!\n");
 }

 async void Main()
 {
  await Do();
  await Do();
 }

 public MainWindow() : base(Gtk.WindowType.Toplevel)
 {
  Build();
  Main();
 }

 protected void OnPauseButtonClicked(object sender, EventArgs e)
 {
  Thread.Sleep(5000);
 }
}

我的意图是:

如果我在第一个“你好,世界!”之前按下按钮 出现,两个“Hello, world”会在 5 秒后以 1 秒的间隔出现。

但是,真正发生了什么:

我在第一个“你好,世界!”之前按下了按钮。出现,5秒过去了,两个“Hello, world”同时出现。

解决方案是什么?

标签: c#monodevelopgtk#

解决方案


推荐阅读