如何暂停或延迟表格?

时间:2016-10-27 17:44:04

标签: c# winforms

我正在尝试编写一个递归程序(河内之塔),每个步骤必须以一点一点的形式显示在窗口中,稍微延迟但睡眠和task.delay对我不起作用:(
这是我的代码:

public void solve(int a,int b,int c,int n,PictureBox[] arr)
{
    if (n == 1)
    {
        h[c].Push(h[a].Pop());
        print(arr);
        return;
    }

    solve(a, c, b, n - 1,arr);
    h[c].Push(h[a].Pop());
    solve(b, a, c, n - 1, arr);
    print(arr);
    // System.Threading.Thread.Sleep();
}

1 个答案:

答案 0 :(得分:-1)

你说你的程序是递归的,所以注释的Thread.Sleep()不会在你到达递归结束时被击中,所以最好将Thread睡眠放在其他地方

public void solve(int a,int b,int c,int n,PictureBox[] arr)
{
    if (n == 1)
    {
        h[c].Push(h[a].Pop());
        print(arr);
        return;
    }
    //like here 
    System.Threading.Thread.Sleep();
    solve(a, c, b, n - 1,arr);
    h[c].Push(h[a].Pop());
    solve(b, a, c, n - 1, arr);
    print(arr);        
}