相关疑难解决方法(0)

async-await的延续突发 - 行为不同?

我有一个winform代码,点击按钮后运行:

void button1_Click(object sender, EventArgs e)
{
    AAA();
}


async Task BBB(  int delay)
{
    await Task.Delay(TimeSpan.FromSeconds(delay));
    MessageBox.Show("hello");  
}

async Task AAA()
{
    var task1 = BBB(1);  // <--- notice delay=1;  
    var task2 = BBB(1);  // <--- notice delay=1;  
    var task3 = BBB(1);  // <--- notice delay=1;  
    await Task.WhenAll(task1, task2, task3);
}
Run Code Online (Sandbox Code Playgroud)

题 :

为什么我一次看到一个MessageBox delay=1:

在此输入图像描述

但如果我改变延迟:1,2,3-

    var task1 = BBB(1);  
    var task2 = BBB(2);  
    var task3 = BBB(3);  
Run Code Online (Sandbox Code Playgroud)

我看到 - 3个消息框甚至没有点击任何消息框?

在此输入图像描述

c# winforms async-await

22
推荐指数
1
解决办法
228
查看次数

标签 统计

async-await ×1

c# ×1

winforms ×1